3
C ++ 17、C ++ 14、およびC ++ 11オブジェクトをリンクしても安全ですか
3つのコンパイル済みオブジェクトがあり、すべて同じコンパイラ/バージョンで生成されているとします。 AはC ++ 11標準でコンパイルされました BはC ++ 14標準でコンパイルされました CはC ++ 17標準でコンパイルされました 簡単にするために、すべてのヘッダーがC ++ 11で記述されており、3つの標準バージョン間でセマンティクスが変更されていない構成体のみを使用しているため、相互依存関係がヘッダーインクルードで正しく表現され、コンパイラーが異議を唱えなかったとします。 これらのオブジェクトのどの組み合わせがそれであり、単一のバイナリにリンクするのは安全ではありませんか?どうして? 編集:主要なコンパイラ(gcc、clang、vs ++など)に関する回答を歓迎します