次のC++コードについて考えてみます。
struct X
{
int a;
int b;
};
X foobar()
{
X x = { 1, 2 };
return x;
}
ここで、このコードがサードパーティアプリケーションによって使用される共有ライブラリに配置されていると仮定します。
私の質問は次のとおりです。X
(たとえばint c
)の最後に別のメンバーを追加し、で初期化するとfoobar()
、を呼び出す既存のアプリケーションはfoobar()
壊れますか?これは、ソースの互換性ではなく、バイナリの互換性に関するものであることに注意してください。