template<class T>
constexpr bool is_meowable = true;
template<class T>
constexpr bool is_purrable() { return true; }
template<class T>
void f(T) requires is_meowable<T>; // OK
template<class T>
void g(T) requires is_purrable<T>(); // 错误,is_purrable<T>() 不是主表达式
template<class T>
void h(T) requires (is_purrable<T>()); // OK
为什么h(T) OK,,g(T) Err?有无括号什么区别?
--
FROM 117.147.21.*