работает, gcc, clang работает
Положить-то можно. Например, всё работает, если написать if constexpr (true). Дело в условии, видимо
if constexpr тут точно ни при чем
В clang работает же https://godbolt.org/z/oax1dYT84
ок, видимо, старый пример там пробовал или что-то не так посмотрел
Условие в if constexpr ложно под MSVC, поэтому происходит попытка разыменовать std::unique_ptr<a> и передать результат в функцию по значению, что, естественно, работать не может. Т.е. реальный MRE такой: constexpr bool test = requires { [](auto o) {}(std::unique_ptr<a>{}); }; static_assert(test); Под Clang я вижу здесь варнинги, в суть которых пока не горю желанием вникать
Думаю, это достаточно неплохое временное решение. А может и не временное...
спасибо, добавил в тикет. Заодно у гцц открыл https://developercommunity.visualstudio.com/t/c-requires-expr-does-not-work/1582069 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103212
да, работает, спасибо
Обсуждают сегодня