在某些 C++ 标准库中定义 class 而不是函数有什么好处?

what's the advantage of defining a class instead of a function in some c++ standard library?

最近注意到C++ std::less是一个class,虽然它只是比较两个objects.Here的值是一个示例代码:

template <class T> struct less {
  bool operator() (const T& x, const T& y) const {return x<y;}
  typedef T first_argument_type;
  typedef T second_argument_type;
  typedef bool result_type;
};

那么定义一个 class 而不是一个函数有什么好处呢? 而且我还想知道为什么在 class 中没有数据成员的情况下使用 'const' 关键字?

主要用作模板参数,如std::set<int, std::less<int>>

Class 接口中的模板参数,如 std::set 用于代替指向函数的指针,以便能够传递 do 具有的其他类似函数的对象一些数据成员。此外,将其作为模板参数有助于编译器优化,尽管现代编译器在某些情况下也可以优化掉函数指针。