Объявление структурированной привязки не может быть 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

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