我想引用内置运算符的函数指针,但是我不知道如何指定特定类型的重载。
我有以下模板类签名:
template<typename ParamsType, typename FnCompareType>
class MyAction
{
public:
MyAction(ParamsType& arg0, ParamsType& arg1, FnCompareType& fnCpmpare)
: arg0_(arg0), arg1_(arg1), fnCompare_(fnCpmpare) {}
bool operator()()
{
if((*fnCompare_)(arg0_,arg1_)
{
// do this
}
else
{
// do s.th. else
}
}
private:
ParamsType& arg0_;
ParamsType& arg1_;
FnCompareType& fnCompare_;
}
我想使用类似这样的语法:
void doConditional(int param1, int param2)
{
MyAction<int,&::operator>=> action(param1,param2);
if(action())
{
// Do this
}
else
{
// Do that
}
}
但这不会编译:
error: ‘::operator>=’ has not been declared
我应该怎么称呼这些内在的静态操作?
ACTION_P1
应该是一个函数名。然而,我没有看到返回类型。此外,它的参数只有名称,没有类型。 - Code-ApprenticeACTION_P1
应该是一个函数名 实际上,它是定义模板类的宏。但我会尝试将其更改为常见示例,并使用简单函数来代替。 - πάντα ῥεῖ