2009-03-03 5 views
0

Je veux vraiment être en mesure d'aller: (en C++)Assertions C++ pouvant afficher une chaîne personnalisée avec Boost ou STL?

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!"); 

Est-il possible de le faire si que le temps d'exécution me donne une erreur complète de sens non seulement "une assertion a échoué" erreur?

+0

Que voulez-vous imprimer comme un message d'erreur? – dirkgently

Répondre

7

Vous pouvez l'utiliser dans toute affirmation plus:

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

+1 - J'aime mieux que ma solution. – Ferruccio

+0

LOL si simple. Merci! Réponse acceptée: D –

3

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

5

Le temps d'exécution affiche généralement l'expression qui a échoué, de sorte que vous pouvez faire quelque chose comme ceci:

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

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

En outre, cela fonctionne sans avoir besoin du STL ou du Boost.

Questions connexes