찾다

 >  Q&A  >  본문

c++ - 模板定义的基础问题

template <typename T>int compare(const T &v1, const T &v2)
{
    if (less<T>()(v1, v2)) return -1;//这里的less<T>后面为什么有两对括号?第一对为何是空的?
}
巴扎黑巴扎黑2805일 전502

모든 응답(1)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-17 13:10:27

    less是一个函数对象,所谓函数对象就是一个重载了调用运算符(就是“()”运算符)的类,它的对象可以“像函数一样使用”,所以叫做函数对象,第一个括号表示调用构造函数,后面的括号就是他的参数,你这个应该是C++ Primer上的例子吧,具体请看C++ Primer 5th第506页对函数调用运算符的介绍。

    회신하다
    0
  • 취소회신하다