Question

Je veux vraiment pouvoir aller: (en C ++)

assert( num > 0, "The number must be greater than zero!");

En C # XNA, ils ont une méthode qui fait exactement ceci:

Debug.Assert( num > 0, "The number must be greater than zero!");

Y a-t-il un moyen de faire en sorte que le moteur d'exécution me donne une erreur complète non seulement "une assertion a échoué" erreur?

Était-ce utile?

La solution

Vous pouvez l'utiliser dans la plupart des assertions:

assert(("The number must be greater than zero!",  num > 0));

Autres conseils

Le moteur d'exécution affiche généralement l'expression qui a échoué. Vous pouvez donc faire quelque chose comme ceci:

assert(num > 0 && "The number must be greater than zero!");

Ce qui n'affectera pas la logique, mais le message d'échec de l'assertion contiendra une chaîne descriptive.

De plus, cela fonctionne sans avoir besoin de la STL ou du Boost.

Utilisez assert (num > 0 & amp; " Le nombre doit être supérieur à zéro! ");

En utilisant BOOST, vous pouvez utiliser leur assertion comme décrit dans http: //www.boost.org/doc/libs/1_50_0/libs/utility/assert.html :

#include <boost/assert.hpp>
/* ... */

BOOST_ASSERT_MSG( num > 0, "The number must be greater than zero!");

ferait exactement comme demandé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top