Форвардное объявление члена перечисления специализации шаблона - не работает с GCCC++

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

Сообщение Anonymous »

Я знаю, что, как правило, в C++11 мы можем объявлять перечисления вперед.
Итак, почему это происходит:

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

enum kind_t { kind1, kind2 };

template  struct foo {};

template  struct foo {
enum named : int;
};

enum foo::named : int {
named1 = 123,
named2 = 456,
};
не удалось скомпилировать с помощью GCC (12.1)? Ошибка (Годболт):

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

:9:6: error: cannot add an enumerator list to a template instantiation
9 | enum foo::named : int {
|      ^~~~~~~~~~
ASM generation compiler returned: 1
:9:6: error: cannot add an enumerator list to a template instantiation
9 | enum foo::named : int {
|      ^~~~~~~~~~
Похоже, это нормально компилируется с clang++ 14.0...

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

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

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

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

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

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

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