这行不通
template<typename T>
struct foo {
T t;
};
bool operator==(const foo &lhs, const foo &rhs) { //error, requires template arg
return lhs.t == rhs.t;
}
这是解决这个问题的正确方法吗?我还想定义运算符 <,>,<=,>=,!= 所以template<typename T>
对所有这些都进行操作会很长。
template<typename T>
struct foo {
T t;
};
template<typename T>
bool operator==(const foo<T> &lhs, const foo<T> &rhs) {
return lhs.t == rhs.t;
}