在作业中,我被告知要为某些课程实施bool operator()(const T&, const T&)
。重载bool operator
意味着允许将对象隐式转换为bool
。用两个参数重载它是什么意思?这些参数如何在主叫方面传递?这是怎么用的?
答案 0 :(得分:5)
这不是“operator bool”,而是operator()
,有两个T
参数,返回bool
。换句话说,它是二元谓词。您可以像这样使用它:
struct Foo
{
bool operator()(const T&, const T&); // should probably be const
};
...
Foo f;
T t1, t2;
bool b = f(t1, t2);
答案 1 :(得分:1)
您将operator bool
与operator()
混淆为返回类型bool。作业是关于后者的。