Можно ли связать разные диалекты стран Персидского залива?

знаю, что в принципе это, вероятно, неопределенное поведение, но в интересах работы с большим проектом, вот мой вопрос о GCC:

Предположим, я компилирую одну единицу транзакции с помощью gcc -std=c++98и еще один с -std=c++11, используя точно такую ​​же установку компилятора. Есть ли какая-то гарантия, что я смогу связать два объектных файла и получить четко определенную программу?

Насколько я могу судить, потенциальные проблемы могут возникнуть только из-за различных представлений заголовков библиотек из-за разных макросов, а те, в свою очередь, в лучшем случае добавятновые функции-члены, но никогда объекты-члены. , к классам стандартной библиотеки.

Сделает ли это каким-то образом приемлемым компиляцию разных частей более крупного проекта с разными вариантами языкового диалекта?

Обновление:Я должен добавить ортогональный вопрос: как насчет использования двух разныхверсий GCC (скажем, 4.3 и 4.6), но с одним и тем жевариантом диалекта ( -std=С++98)? Листинг в этой документации GCC, кажется, предполагает, что библиотека совместима в обоих направлениях между 4.2.2 и 4.6.

18
задан Kerrek SB 23 May 2012 в 10:03
поделиться