Angenommen, ich habe drei kompilierte Objekte, die alle vom dem gleichen Compiler/der gleichen Version erstellt wurden:
- A wurde mit dem C++11-Standard kompiliert
- B wurde mit dem C++14-Standard kompiliert
- C wurde mit dem C++17-Standard kompiliert
Der Einfachheit halber nehmen wir an, dass alle Header geschrieben wurden In C++11 wurden nur Konstrukte verwendet, deren Semantik sich zwischen allen drei Standardversionen nicht geändert hat, sodass alle gegenseitigen Abhängigkeiten mit der Einbindung von Headern korrekt ausgedrückt wurden und der Compiler keine Einwände erhob.
Um welche Kombinationen dieser Objekte handelt es sich und ist es nicht sicher, sie in eine einzelne Binärdatei zu verknüpfen? Warum?
Antworten zu wichtigen Compilern (z. B. GCC, Clang und MSVC++) sind willkommen.