Когда я компилирую свой код с поддержкой C ++ 11 (используя -std=c++11
флаг) и использовать не-заголовочные библиотеки Boost, тогда мне нужно скомпилировать Boost с -std=c++11
, Это связано с тем, что при включенном C ++ 11 Boost имеет некоторые различия в интерфейсах в заголовочных файлах, а некоторые сигнатуры функций различаются для разных стандартов C ++.
Мой вопрос заключается в том, верно ли то же самое с C ++ 14 (с использованием g ++ 4.9, с флагом `-std = c ++ 1y), или безопасно использовать Boost, скомпилированный с C ++ 11, для программы, скомпилированной с C ++ 14?
Это очень широкий вопрос, на который трудно ответить однозначно, потому что
Возможно, вы захотите внимательно прочитать ошибки вашего компилятора (если они есть) и сравнить их со списком критических изменений, приведенным ниже. Кроме того, я бы рекомендовал следовать Испытательный жгут для поиска подозрительных комбинаций компилятор / библиотека, которые применимы к вашей системе.
Некоторые соответствующие вопросы&А здесь: