我正在实现小型数学向量的模板类,遇到了一个问题。对于算术运算,T1 lhs + T2 rhs
的返回类型是 std::common_type<T1, T2>::type.
但是对于以下情况(例如 T1 为有符号整数,T2 为无符号整数或反之亦然,或者 T1 为字符,T2 为无符号长整型等等...),下面的代码应该返回什么类型呢?
T1 lhs & T2 rhs ?
T1 lhs | T2 rhs ?
T1 lhs ^ T2 rhs ?
T1 lhs << T2 rhs ?
T1 lhs >> T2 rhs ?
非常感谢你。
<<
和>>
仅取决于lhs的类型。(对于内置类型而言。) - Mr Lister