Können verschiedene GCC-Dialekte miteinander verknüpft werden?

Ich weiß, dass dies im Prinzip wahrscheinlich undefiniertes Verhalten ist, aber im Interesse eines großen Projekts ist hier meine Frage zu GCC:

Angenommen, ich kompiliere eine Übersetzungseinheit mitgcc -std=c++98und ein anderer mit-std=c++11unter Verwendung der exakt gleichen Compiler-Installation. Gibt es irgendeine Garantie, dass ich die beiden Objektdateien verknüpfen und ein genau definiertes Programm erhalten kann?

Soweit ich das beurteilen kann, können die potenziellen Probleme nur durch unterschiedliche Ansichten der Bibliotheksüberschriften aufgrund unterschiedlicher Makros verursacht werden, und diese wiederum wären es bestenfallshinzufügen Neue Memberfunktionen, aber niemals Memberobjekte, für die Standardbibliotheksklassen.

Würde dies es irgendwie akzeptabel machen, verschiedene Teile eines größeren Projekts mit verschiedenen Sprachdialektoptionen zu kompilieren?

Aktualisieren: Ich sollte eine orthogonale Frage hinzufügen: Was ist mit zweianders Versionen von GCC (sprich 4.3 und 4.6), aber diegleich Dialektoption (-std=c++98)? Die Auflistungin dieser GCC-Dokumentation scheint darauf hinzudeuten, dass die Bibliothek zwischen 4.2.2 und 4.6 in beide Richtungen kompatibel ist.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage