De façon portable sans passer NULL/zéro de dynamic_cast?

De sortir de l'habitude de vérifier pointeurs nuls, j'ai parfois écrit:

MyClass * c = someBasePtr ? dynamic_cast<MyClass*>(someBasePtr) : 0;
if (c) {...

En effet, la vérification par un pointeur null avant de passer à la dynamique de fonte, et également la vérification de la déclaration.

J'ai ensuite lu dans la documentation MSDN

Une valeur de pointeur null est converti à
la valeur de pointeur null de la
type de destination par dynamic_cast.

Il apparaît ensuite que je pouvais enlever la ?: construire en toute sécurité. Est-ce C++ portable?

Tels que le nouveau code serait

MyClass * c = dynamic_cast<MyClass*>(someBasePtr);
if (c) {...

Bien sûr, en supposant que someBasePtr est soit null soit valide, c'est à dire pas sauvage pointant à la poubelle...

InformationsquelleAutor sdg | 2011-03-01