«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему в GCC 4.6.1 возникают проблемы со списками инициализации для std::array?

Почему в GCC 4.6.1 возникают проблемы со списками инициализации для std::array?

Опубликовано 22 декабря 2024 г.
Просматривать:561

Why Does GCC 4.6.1 Struggle with Initialization Lists for std::array?

Использование списков инициализации с std::array

Создать std::array с использованием списков инициализации можно несколькими способами. Однако GCC 4.6.1 может столкнуться с ошибками при попытке сделать это.

Синтаксис инициализации

Синтаксис для создания std::array с использованием списков инициализации:

std::array array = { { value1, value2, ..., valueN } };

где T — тип элемента массива, size — размер массива, а значения от value1 до valueN — начальные значения массива.

Инициализация агрегата

std::array является агрегатной структурой, которая позволяет инициализировать ее агрегатно. Чтобы инициализировать массив внутри структуры, используйте дополнительный набор фигурных скобок:

std::array<:string> strings = {{ "a", "b" }};

Этот синтаксис позволяет избежать конструктора, который принимает список инициализаторов, что может вызвать проблемы в GCC. 4.6.1.

Проблема компилятора

Стандарт C 11 предполагает, что дополнительные фигурные скобки можно исключить при агрегатной инициализации. Следовательно, неспособность GCC 4.6.1 скомпилировать списки инициализации для std::array без дополнительных фигурных скобок, скорее всего, является ошибкой компилятора.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3