相关疑难解决方法(0)

是否可以获取内置标准运算符的函数指针?

我想引用内置运算符的函数指针,但我不知道如何指定特定的类型重载.

我有以下模板类签名:

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)

我该怎么做才能引用这种内在的静态操作?

c++ operators

15
推荐指数
2
解决办法
2116
查看次数

标签 统计

c++ ×1

operators ×1