我有一个基本上需要存储构造函数中给出的仿函数的类,类似于:
template <class T>
class Foo {
private:
T func;
public:
Foo(T f) : func(f) { }
}
但是,要创建 Foo 类的新实例,我似乎无法这样做:
Foo foo(std::less<int>());
因为 T 是一个类模板参数。我必须改用这种笨拙的语法:
Foo<std::less<int>> foo(std::less<int>());
有没有更好的方法来做到这一点,而无需两次编写仿函数的类型?