相关疑难解决方法(0)

C++ 概念 - 我可以有一个要求在类中存在函数的约束吗?

我在下面有一个简单的代码片段,它使用以下编译:

g++-9 -std=c++2a -fconcepts

这是试图定义一个需要函数存在的概念。我希望输出是“是”,但它不是......知道为什么吗?谢谢。

#include <iostream>


template <typename T>
concept bool HasFunc1 = 
    requires(T) {
        { T::func1() } -> int;
    };

struct Test
{
    int func1()
    {
        return 5;
    }
};

int main()
{
    if constexpr (HasFunc1<Test>)
        std::cout << "yes\n";
}
Run Code Online (Sandbox Code Playgroud)

c++ template-meta-programming c++-concepts

8
推荐指数
3
解决办法
2673
查看次数