Open
Description
#include <type_traits>
void a(...);
template<typename T>
bool b()
{
return requires { a(a(1)); };
}
bool c() { return b<void>(); }
Expected: Either false, because a(1)
is void and cannot be passed to a()
, or a hard error, because there is no set of template arguments for which that sub-expression is legal.
Actual: True.