He estado leyendo mucho sobre la fundición C++ y estoy empezando a confundirse porque siempre he utilizado la fundición de estilo C.confusa en C++ fundición
He leído que C fundición estilo debe ser evitado en C++ y que reinterpret_cast es muy, muy peligroso y no debe ser usado cada vez que hay una alternativa. Al contrario de no usar reinterpret_cast, lo he visto usado muchas veces en MSDN en su código de muestra. Esto me lleva a hacer mi primera pregunta, ¿cuándo está bien usar reinterpret_cast?
Por ejemplo:
LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_CREATE:
{
LPCREATESTRUCT lpCreateStruct = reinterpret_cast<LPCREATESTRUCT>(lParam);
return 0;
}
}
...
}
Si eso no es aceptable, entonces ¿cómo iba a emitir el valor lParam a un puntero utilizando solamente estática, dinámica y/o const casting?
También: Si reinterpret_cast no es portátil, ¿cómo iba a volver a escribir que sea portátil (para una buena práctica)
Esto podría ser MUY código antiguo base. –