Clang сломан с `-std = c ++ 20` и `-wdtor-name`C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Clang сломан с `-std = c ++ 20` и `-wdtor-name`

Сообщение Anonymous »

Рассмотрим этот простой код. < /p>

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

struct Foo {
template 
struct Bar {
~Bar();
};
};
< /code>
с реализацией вне линии < /p>
template 
Foo::Bar::~Bar()
{
// dtor implementation
}
Использование Clang (до текущего сундука), с -std = c ++ 20 и -wdtor-name . Предупреждение: Предупреждение: ISO C ++ требует имени после ':: ~' для найденного в той же сфере, что и название раньше. class = "lang-cpp prettyprint-override">

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

template 
Foo::Bar::~Bar()
{
// dtor implementation
}
< /code>
Но, CWG 2237 делает это недействительным (по крайней мере, в простом классе). Может быть, он не предназначен для распространения в вложенном шаблоне класса, или, может быть, у Clang есть ошибка? -Werror 
(что я делаю), эти предупреждения являются ошибками.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... wdtor-name
Ответить

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

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

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

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

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