Странные различия между компиляторами относительно SFINAE и разрешения перегрузкиC++

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

Сообщение Anonymous »

Вот фрагмент, который не зависит от каких-либо внешних включений и ведет себя по-разному в msvc/gcc/clang.
Я оставил две альтернативы внутри main.
Он компилируется с помощью gcc в обеих альтернативах; не компилируется с msvc ни в одном из вариантов.
Однако он компилируется в clang, только если я создаю именованную переменную, а не временную.
Может ли кто-нибудь объяснить такое поведение?
Я тестировал -std=c++23 на clang 21.1.2, но с другими версиями он ведет себя аналогично.


Подробнее здесь: https://stackoverflow.com/questions/798 ... resolution
Ответить

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

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

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

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

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