В C ++ primer 5 edition. глава 12 Динамическая память:
Если инициализаторов меньше, чем элементов, остальные элементы инициализируются значением. Если инициализаторов больше, чем заданный размер, то новое выражение завершится неудачно и хранилище не будет выделено. В этом случае new создает исключение типа bad_array_new_length. Как и bad_alloc, этот тип определен в новом заголовке.
Речь идет о выделении и инициализации динамических массивов. Но я думаю, что это неправильно: если число инициализаторов больше, чем размер динамического массива, то это ошибка времени компиляции, а не ошибка времени выполнения:
auto p = new int[3]{4, 5, 6, 7}; // compile-time error: Too many initializers.