reinterpret_cast - cast c++>
¿Por qué reinterpret_cast no puede convertir un int a int? (2)
El estándar de C ++ dice (5.2.10.2) (el énfasis es mío):
El operador reinterpret_cast no debe descartar la constness (5.2.11). Una expresión de tipo integral, enumeración, puntero o puntero a miembro se puede convertir explícitamente a su propio tipo ; tal molde arroja el valor de su operando.
Entonces diría que es un error.
Mi compilador es el último VC ++ 2013 RC.
void f()
{
int n1 = 0;
int n2 = reinterpret_cast<int>(n1); // error C2440
}
error C2440: ''reinterpret_cast'': no se puede convertir de ''int'' a ''int''
¿Por qué no se puede utilizar reinterpret_cast en un caso tan obvio?
According cppreference.com, la siguiente conversión está disponible solo desde C ++ 11:
Una expresión de tipo integral, enumeración, puntero o puntero a miembro se puede convertir a su propio tipo. El valor resultante es el mismo que el valor de expresión.
que aún no puede implementarse en Visual Studio 2013 RC.