Lyb*_*rta 7 c++ c++-concepts c++17 c++20
所以我有一个概念Fooable:
template <typename T>
concept bool Fooable()
{
return requires(...){ ... };
}
Run Code Online (Sandbox Code Playgroud)
我有一个类模板Bar,它将类型T作为模板参数,我想只在以下T情况下启用成员函数Fooable:
template <typename T>
class Bar
{
public:
template // ???
requires Fooable<T>
void MemFun();
};
Run Code Online (Sandbox Code Playgroud)
在带有概念TS或C++ 2a的C++ 17中是否可行?
Cas*_*sey 11
在Concepts TS和C++ 20设计中,函数都有一个可选的trailing require-clause.因此,您不需要使您的成员函数成为约束它的模板:
void MemFun() requires Fooable<T>;
Run Code Online (Sandbox Code Playgroud)