Могу ли я использовать шаблоны переменных (но не другие функции c ++ 0x) в g ++? - PullRequest
0 голосов
/ 19 сентября 2011

Предполагается, что поскольку шаблоны с переменными параметрами являются функцией времени компиляции, влияние ABI или изменение поведения во время выполнения будут незначительными.Возможно ли это?

Я специально хочу воспользоваться преимуществами более быстрого времени компиляции для boost :: mpl :: vector и boost :: mpl :: string.

Перефразируя вопрос ...

Можно ли смешивать код c ++ 03 и c ++ 11, разделяя их на библиотеки?Т.е. мы используем довольно много сторонних библиотек c ++, которые совместимы с gcc 4.3, но мы тоже переходим на gcc 4.7 и намерены использовать возможности c ++ 11, где это возможно / имеет смысл.Или нельзя смешивать с ++ 11 и с ++ 03?

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Вы должны скомпилировать и связать все, используя те же инструменты, работающие в совместимых режимах. Вы не можете выбирать такие черты.

Влияние ABI проявляется, например, в увеличенных таблицах виртуальных функций для стандартных классов ввода / вывода. не безопасно смешивать вещи вокруг.

0 голосов
/ 21 сентября 2011

Я не могу дать квалифицированный ответ, но, насколько я понял, много людей будут обеспокоены, если этот вид обратной совместимости будет нарушен. Насколько я понял, в новом C ++ 11 нет ничего, что требовало бы перестройки всего. Таким образом, это может быть только ваш конкретный компилятор, который сделает это необходимым. Для GCC я не ожидаю этого, хотя разные версии libstdc ++ могут создавать «проблемы».

Мое сильное предположение состоит в том, что на типичных (intel-) linux вы сможете создавать две независимые библиотеки с разными прилично новыми версиями gcc (возможно,> 4.x) и использовать / связывать их в конечную программу. , У вас может быть что-то там дважды, хотя. У меня были незначительные решаемые проблемы с потоками в 4.7.0 и <thread>. Я не знаю, будут ли они создавать хороший или плохой микс с другими потоковыми библиотеками (например, boost). Однако вы еще не хотите использовать gcc-4.7.0 для своего производственного кода. И до выхода окончательного компилятора gcc уверенность может дать только заявление ответственной команды проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...