J'ai beaucoup lu sur le casting en C++ et je commence à être confus parce que j'ai toujours utilisé le casting de style C. J'ai lu que le casting de style C devrait être évité en C++ et que reinterpret_cast est très très dangereux et ne devrait pas être utilisé quand il y a une alternative. Au contraire de ne pas utiliser reinterpret_cast, je l'ai vu utilisé plusieurs fois sur MSDN dans leur exemple de code. Cela m'amène à poser ma première question, quand est-ce que je peux utiliser reinterpret_cast?Confusion sur le casting C++
Par exemple:
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 ce n'est pas correct, alors comment pourrais-je jeter la valeur lParam à un pointeur en utilisant uniquement statique, dynamique et/ou coulée const?
aussi: Si reinterpret_cast est pas portable, comment pourrais-je réécris pour être portable (pour les bonnes pratiques)
Cela peut être une ancienne base de code. –