返回C ++中按位运算符的类型

时间:2012-07-31 18:01:38

标签: c++ types operators

当我为小数学向量实现模板化类时,我遇到了一个问题。 对于算术运算,T1 lhs + T2 rhs的返回类型为std::common_type<T1, T2>::type. 但是下面的返回类型是什么(例如T1签名和T2无符号或相反,或T1 char和T2 unsigned long long int等...):

T1 lhs & T2 rhs ?
T1 lhs | T2 rhs ?
T1 lhs ^ T2 rhs ?
T1 lhs << T2 rhs ?
T1 lhs >> T2 rhs ?

非常感谢。

1 个答案:

答案 0 :(得分:4)

我假设你要对向量实现一个组件式逐位运算。基本上按位运算是整数运算,我认为没有理由不将结果作为std::common_type<T1, T2>::type

移位的结果不依赖于右操作数。只需使用T1即可。