Я хочу обратиться к указателям на функции встроенных операторов, но я не знаю, как указать конкретные перегрузки типов.
У меня есть следующая подпись класса шаблона:
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
Что я могу сделать, чтобы ссылаться на такие встроенные статические операции?