Pergunta

Eu realmente quero ser capaz de ir: (em C ++)

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

Em C # XNA, eles têm um método que faz exatamente isso:

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

Existe alguma maneira de fazer isso de modo que o tempo de execução me dá um erro completo que significa não apenas "uma afirmação falhou" erro?

Foi útil?

Solução

Você pode usar isso em mais qualquer afirmação:

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

Outras dicas

O tempo de execução normalmente exibe a expressão que falhou, assim você pode fazer algo como isto:

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

O que não vai afetar a lógica, mas a mensagem de falha de declaração conterá uma cadeia descritiva.

Além disso, isso funciona sem a necessidade do STL ou impulso.

Use assert (num> 0 && "O número deve ser maior que zero!");

Usando o impulso que você pode usar sua assert conforme descrito no 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!");

faria exatamente conforme solicitado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top