gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:48:51 26 4
gpt4 key购买 nike

下面有一个简单的代码片段,它使用以下方式进行编译:

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

这是试图定义一个需要存在函数的概念。我希望输出是"is",但事实并非如此……知道为什么吗?谢谢。

#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";
}

最佳答案

您正在测试静态成员函数是否存在。你想要的是

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

关于C++ 概念 - 我可以有一个要求类中存在函数的约束吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58394556/

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