Это вопрос компилятора.Например, если у вас есть один компилятор, который поддерживает как C++03
, так и C++11
в зависимости от переключателя компилятора, вы, скорее всего, можете смешивать библиотеки.В C ++ 11 нет ничего нового, что вызывает несовместимость с C ++ 03.
Однако, вы упомянули, что ваши библиотеки были скомпилированы с GGC 4.2.1.Поскольку C ++ 11 была тогда просто идеей, вполне вероятно, что тогда GCC был реализован способами, которые оказались несовместимыми с C ++ 11.
Например, std::list::size()
должно быть O(1) в C ++ 11, но это может быть O (N) в C ++ 03.GCC тогда выбрал реализацию O (N), не зная будущих требований.Текущая реализация GCC std::list::size
совместима как с C ++ 11, так и с C ++ 03, поскольку O (1) лучше, чем O (N).