我想引用内置运算符的函数指针,但我不知道如何指定特定的类型重载.
我有以下模板类签名:
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_;
}
Run Code Online (Sandbox Code Playgroud)
并希望使用这样的语法:
void doConditional(int param1, int param2)
{
MyAction<int,&::operator>=> action(param1,param2);
if(action())
{
// Do this
}
else
{
// Do that
}
}
Run Code Online (Sandbox Code Playgroud)
但那不编译:
error: ‘::operator>=’ has not been declared
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能引用这种内在的静态操作?