我有一个带有两个模板参数的模板类和以下构造函数:
template <class T, class TCompare>
class MyClass {
...
public:
MyClass(TCompare compare);
...
};
我有一个重载运算符 () 以进行整数比较的结构:
struct IntegerLess {
bool operator () {const int& a, const int& b) {
if (a < b)
return true;
return false;
}
};
我想将此结构作为参数传递给 MyClass 构造函数。我尝试了以下方法:
MyClass<int> myClassObject(IntegerLess());
和
MyClass<int, typename IntegerLess> myClassObject(IntegerLess());
但是,这两次我都有编译时错误。在第一种情况下
error: wrong number of template arguments (1, should be 2)
在第二种情况下
error: template argument 2 is invalid
有人可以在这里指出正确的选择吗?谢谢!