Предположим, у меня есть следующая структура:
struct sampleData
{
int x;
int y;
};
И при использованииЯ хочу инициализировать переменные типа sampleData
в известное состояние.
sampleData sample = { 1, 2 }
Позже я решаю, что мне нужны дополнительные данные, хранящиеся в моей структуре sampleData
, а именно:
struct sampleData
{
int x;
int y;
int z;
};
It Насколько я понимаю, инициализация двух полей, оставшаяся от моей структуры данных до z
, все еще является допустимым оператором и будет скомпилирована., заполняя отсутствующие поля значениями по умолчанию.
Верно ли это понимание? Недавно я работал в Ada, который также позволяет агрегатную инициализацию, но при этом помечает аналогичную проблему как ошибку компиляции. Предполагая, что мои предположения о приведенном выше коде C ++ верны, существует ли языковая конструкция, которая распознала бы отсутствующие значения инициализации как ошибку?