Como estoy implementando clases de plantillas para pequeños vectores matemáticos, encuentro un problema. Para las operaciones aritméticas, el tipo de retorno de T1 lhs + T2 rhs
es std::common_type<T1, T2>::type.
Pero, ¿cuál es el tipo de devolución para lo siguiente (por ejemplo T1 firmado y T2 sin firmar o lo contrario, o T1 char y T2 unsigned long long int etc ...):Tipo de devolución de operadores bit a bit en C++
T1 lhs & T2 rhs ?
T1 lhs | T2 rhs ?
T1 lhs^T2 rhs ?
T1 lhs << T2 rhs ?
T1 lhs >> T2 rhs ?
Muchas gracias.
'decltype (lhs & rhs)', etc.? –
¿Conoce las trampas inherentes a la realización de funciones bit a bit en valores firmados? –
¿Desea obtenerlo programáticamente o quiere saberlo? En el caso posterior, declare (pero no defina) una función de plantilla con un único argumento y llámela con las expresiones. El compilador le dirá los tipos en el mensaje de error –