Bonjour à tous,
dans le projet sur lequel je travaille actuellement, j'ai besoin d'écrire une fonction qui imite le comportement d'un static ou d'un dynamic_cast, selon qu'on est en Débug ou en Release. En clair, je dois écrire une fonction comme ceci :
Ce bout de code n'est pas valide, car exp n'a pas de type. Comment faire pour spécifier un type générique (comme par exemple l'objet Object en Java) en C++ ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 template< typename T > T safe_cast( expr ) { #ifdef _DEBUG T res = dynamic_cast< T >( exp ); ASSERT( res != NULL ); return res; #else return static_cast< T >( exp ); #endif }
Par ailleurs j'ai écrit une macro qui fonctionne bien, mais je voudrais éviter d'utiliser ce genre de macros. Merci d'avance !
Partager