如果类定义了调用运算符,则该类的对象称为函数对象。
less是标准库的某个类对吧?
那么less()是什么?是一个对象?
上图less后边这个空括号是什么意思?
less()临时对象。
less()(v1, v2) 我们具体看这个式子,这是创建了一个临时的 less 对象,调用它的调用运算符来比较 v1 和 v2 的大小。如果 v1 < v2,则返回 -1;如果 v2 小< v1,则返回 1;如果 v1 = v2,则返回 0。
空括号 () 表示调用构造函数,当然肯定不会传递任何参数。less() 创建了一个默认构造的 less 对象。