Странные различия между компиляторами относительно 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

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