template <typename T>
concept HasInner = requires { T::inner; };
void foo(HasInner auto x) { return; }
struct Test { using inner = int; };
int main()
{
foo(Test());
}
为什么这段代码无法编译?
inner_type<T>::type;
不是一个有效的表达式吗?
我知道
concept HasInner = requires { typename T::inner; };
没关系。但我想知道为什么第一个不行。
谢谢!