Czy można połączyć różne dialekty GCC?

Wiem, że w zasadzie jest to prawdopodobnie niezdefiniowane zachowanie, ale w interesie radzenia sobie z dużym projektem, oto moje pytanie o GCC:

Załóżmy, że kompiluję jedną jednostkę tranzytową zgcc -std=c++98, a drugi z-std=c++11, używając dokładnie tej samej instalacji kompilatora. Czy istnieje jakaś gwarancja, że ​​mogę połączyć dwa pliki obiektów i uzyskać dobrze zdefiniowany program?

O ile wiem, potencjalne problemy mogą pochodzić tylko z różnych widoków nagłówków biblioteki z powodu różnych makr, a te z kolei w najlepszym razieDodaj nowe funkcje składowe, ale nigdy obiekty członkowskie, do standardowych klas biblioteki.

Czy to w jakiś sposób pozwoli na skompilowanie różnych części większego projektu z różnymi opcjami wyboru języka?

Aktualizacja: Powinienem dodać pytanie ortogonalne: A co z użyciem dwóchróżne wersje GCC (powiedzmy 4.3 i 4.6), ale copodobnie opcja dialektu (-std=c++98)? Listaw tej dokumentacji GCC wydaje się sugerować, że biblioteka jest kompatybilna w obu kierunkach między 4.2.2 a 4.6.

questionAnswers(3)

yourAnswerToTheQuestion