Объявление структурированной привязки не может быть constinit.C++

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

Сообщение Anonymous »

Можно ли объявить структурированную привязку со спецификатором constinit, начиная с C++20?
Например

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

struct A { int i, j; };

constinit auto [x, y] = A{ 0, 1 };
Здесь компиляторы несколько расходятся. MSVC жалуется:

ошибка C3694: объявление структурированной привязки не может содержать никаких спецификаторов, кроме «статических», «thread_local», «авто» и cv-квалификаторов.

За ним следует

Clang с ошибкой: объявление декомпозиции не может быть объявлено ' constinit'

Но GCC просто принимает пример. Онлайн-демо: https://gcc.godbolt.org/z/jaY7ncsPP
Какая реализация здесь правильная?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -constinit
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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