Рассмотрим следующий код C ++:
struct X
{
int a;
int b;
};
X foobar()
{
X x = { 1, 2 };
return x;
}
Теперь предположим, что этот код помещен в общую библиотеку, которая используется сторонними приложениями.
Мой вопрос: если я добавлю другого участника в конце X
(например, int c
) и инициализирую его в foobar()
, будут ли существующие приложения, которые вызывают foobar()
, сломаться? Обратите внимание, что речь идет о двоичной совместимости, а не о совместимости с исходным кодом.