«Вывод этого» приводит к тому, что «спецификация исключения недоступна до конца определения класса», это ошибка компилятC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 «Вывод этого» приводит к тому, что «спецификация исключения недоступна до конца определения класса», это ошибка компилят

Сообщение Anonymous »

Рассмотрим следующий код:

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

struct A
{
void foo(this auto &&) noexcept(true) {}
auto bar() -> decltype(foo()) {}
};
Clang 19 отклоняет этот код с ошибкой ниже, в то время как GCC и MSVC его принимают.

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

:4:28: error: exception specification is not available until end of class definition
4 |     auto bar() -> decltype(foo()) {}
|                            ^
Этот код незаконен или это ошибка Clang? Если это незаконно, то почему? (Почему на данный момент не может быть доступна спецификация исключения?)

Чтобы внести ясность, мой фактический noException(...) зависит от этого, поэтому удаление (true) не является вариантом.
Кроме того, если я начну использовать в нем это, GCC начнет давать сбой : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117106

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

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

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

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

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

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

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