相关疑难解决方法(0)

C++20 概念如何定义带参数的函数的存在?

在 C++20 中,我们现在可以使用概念而不是 SFINAE 来确定模板类型名中是否存在函数:

template<typename T> concept fooable = requires (T a) {
    a.foo();
};

class Foo {
public:
    // If commented out, will fail compilation.
    void foo() {}
    void bar() {}
};

template <typename T> requires fooable<T>
void foo_it(T t) {
    t.bar();
}

int main()
{
    foo_it(Foo());
}
Run Code Online (Sandbox Code Playgroud)

我们如何使用具有非空参数的函数来做到这一点?

c++ c++-concepts c++20

4
推荐指数
1
解决办法
3009
查看次数

标签 统计

c++ ×1

c++-concepts ×1

c++20 ×1