gpt4 book ai didi

c++ - 使用概念检查全局函数是否存在

转载 作者:行者123 更新时间:2023-12-03 06:52:10 24 4
gpt4 key购买 nike

我可以创建一个概念来检查名为 to_string() 的成员函数是否存在,该函数在结构/类中返回 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>;
};

最佳答案

这似乎有效:

template<typename T>
concept method_to_string = requires(T v)
{
{ to_string(v) } -> std::same_as<std::string>;
};
https://gcc.godbolt.org/z/7WdTjf

关于c++ - 使用概念检查全局函数是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64308089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com