gpt4 book ai didi

c++ - 头文件中的仿函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:40:05 26 4
gpt4 key购买 nike

我有以下仿函数,我已经将它包含在我的主程序中

template<class T> struct Comp: public binary_function<T, T, int>
{
int operator()(const T& a, const T& b) const
{
return (a>b) ? 1: (a<b) ? -1 :0;
}
};

它在 .cpp 中时没有给出任何错误,但现在当我将它移到我的 .h 中时,它给出了以下错误:

testclass.h: At global scope:
testclass.h:50:59: error: expected template-name before ‘<’ token
testclass.h:50:59: error: expected ‘{’ before ‘<’ token
testclass.h:50:59: error: expected unqualified-id before ‘<’ token

所以,我将其重写为:

template<class T> T Comp: public binary_function<T, T, int>
{
int operator()(const T& a, const T& b) const
{
return (a>b) ? 1: (a<b) ? -1 :0;
}
};

现在我收到以下错误:

testclass.h: At global scope:
testclass.h:50:30: error: expected initializer before ‘:’ token

关于如何修复它有什么建议吗?谢谢!

最佳答案

最初的错误可能是 binary_function:缺少包含或者没有考虑到它在命名空间 std 中。

#include <functional>

std::binary_function<T, T, int>

关于c++ - 头文件中的仿函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7150687/

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