C ++ 11-Kompatibilität mit vorhandenen Bibliotheken / Frameworks

Ich frage mich etwas, für das ich noch keine überzeugende Antwort gefunden habe.

Situation

Ein System mit einigen Bibliotheken (z. B. gtkmm), das ohne aktiviertes c ++ 11 kompiliert wurde.Eine mit C ++ 11 kompilierte Anwendung.Beide werden mit derselben GCC-Version / -Umgebung kompiliert und verknüpft. Die Anwendung hat einige Funktionsaufrufe für die Bibliothek, die std :: string und std :: vector verwenden.

both std :: string und std :: vector unterstützen die Verschiebungssemantik, was höchstwahrscheinlich bedeutet, dass sie nicht binär kompatibel mit Nicht-C ++ 11-Varianten sind. Sowohl die Anwendung als auch die Bibliothek werden jedoch mit denselben Compiler- und Standardbibliotheken erstellt. Es wäre also nicht so seltsam, wenn die Bibliothek dies erkennen und unterstützen würde.

Ist die obige Situation sicher oder müsste wirklich alles mit dem C ++ 11-Flag kompiliert werden, auch wenn dieselbe Build-Umgebung verwendet wird?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage