reinterpret_cast cast c++ pointers integer type-conversion reinterpret-cast

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.