Попросите компилятор проверить количество инициализаторов массива.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Попросите компилятор проверить количество инициализаторов массива.

Сообщение Anonymous »

Инициализация массива (в C++, но любое решение, которое работает для C, скорее всего, подойдет и здесь) с меньшим количеством инициализаторов, чем количество элементов, совершенно законно:

Код: Выделить всё

int array[10] = { 1, 2, 3 };
Однако это может быть источником непонятных ошибок. Есть ли способ заставить компилятор (gcc) проверять количество инициализаторов для одного конкретного массива и выдавать предупреждение или даже ошибку, если объявленный и фактический размер не совпадают?

Я знаю, что могу использовать int array[] = { 1, 2, 3 };, а затем использовать статические утверждения, включающие sizeof(array), чтобы проверить мои ожидания. Но я использую массив в других единицах перевода, поэтому мне приходится явно указывать его размер. Так что мне этот трюк не подойдет.

Подробнее здесь: https://stackoverflow.com/questions/152 ... itializers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»