Std :: to_array отличается от прямой инициализацииC++

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

Сообщение Anonymous »

Первоначально я думал, что std :: to_array будет эквивалентно инициализации напрямую, то есть способ избежать необходимости указать длину массива в коде, сравните: < /p>

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

constexpr auto arr = std::to_array({'f', 'o', 'o'});
< /code>
to < /p>
constexpr std::array arr{'f', 'o', 'o'};
Но сгенерированная сборка, а также расположение этих данных в двоичном режиме отличаются. Это раздражает, чтобы соответствовать этому размеру точно точно с данными - похоже, компилятор может предупредить, слишком ли этот размер, но не слишком длинная.
Godbolt

Подробнее здесь: https://stackoverflow.com/questions/795 ... ialization

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