搜尋

首頁  >  問答  >  主體

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

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

全部回覆(1)我來回復

  • ringa_lee

    ringa_lee2017-04-17 13:10:27

    less是一個函數對象,所謂函數對象就是一個重載了調用運算符(就是“()”運算符)的類,它的對象可以“像函數一樣使用”,所以叫做函數對象,第一個括號表示呼叫建構函數,後面的括號就是他的參數,你這個應該是C++ Primer上的例子吧,具體請看C++ Primer 5th第506頁對函數呼叫運算子的介紹。

    回覆
    0
  • 取消回覆