Попросите компилятор проверить количество инициализаторов массива.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

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