我可以创建一个概念来检查名为to_string()的成员函数的存在,该成员函数在struct / class中返回std :: string。
template<typename T>
concept method_to_string = requires(T v)
{
{ v.to_string() } -> std::same_as<std::string>;
};
我想创建一个概念,该概念检查名为to_string的全局函数的存在,该函数接受T
,并返回std :: string。我没做到我使用gcc 10.2作为编译器。
我的猜测是我看起来像这样,但是失败了:
template<typename T>
concept function_to_string = requires(T v)
{
to_string(const T&) -> std::same_as<std::string>;
};
答案 0 :(得分:3)
这似乎起作用:
template<typename T>
concept method_to_string = requires(T v)
{
{ to_string(v) } -> std::same_as<std::string>;
};