Domanda

Voglio davvero poter andare: (in C ++)

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

In C # XNA, hanno un metodo che fa esattamente questo:

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

Esiste un modo per farlo in modo che il runtime mi dia un errore pieno di significato non solo "un'asserzione fallita" errore?

È stato utile?

Soluzione

Puoi usarlo nella maggior parte delle asserzioni:

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

Altri suggerimenti

Il runtime di solito mostra l'espressione non riuscita, quindi puoi fare qualcosa del genere:

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

Ciò non influirà sulla logica, ma il messaggio di errore dell'asserzione conterrà una stringa descrittiva.

Inoltre, funziona senza la necessità di STL o Boost.

Usa assert (num > 0 & amp; & amp; " Il numero deve essere maggiore di zero! ");

Usando BOOST puoi usare la loro affermazione come descritto in 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!");

farebbe esattamente come richiesto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top