考虑类似...
template<typename T>
class Vector {
...
bool operator==( const Vector<float> &rhs ) {
// compare and return
}
bool operator==( const Vector<T> &rhs ) {
// compare and return
}
...
};
请注意专业化如何高于非专业化版本。如果我将专业版本放在非专业版本之下Vector<float>
, == 比较是否仍能按预期工作?出于某种原因,我想我记得读过,如果您在这种情况下将专业化放在下面,那么当编译器查看标头时,它将首先看到默认值,看看它是否有效,然后使用它。