aquí está mi versión de macro afirman, que acepta el mensaje e imprime todo lo que fuera de una manera clara:
#include <iostream>
#ifndef NDEBUG
# define M_Assert(Expr, Msg) \
__M_Assert(#Expr, Expr, __FILE__, __LINE__, Msg)
#else
# define M_Assert(Expr, Msg) ;
#endif
void __M_Assert(const char* expr_str, bool expr, const char* file, int line, const char* msg)
{
if (!expr)
{
std::cerr << "Assert failed:\t" << msg << "\n"
<< "Expected:\t" << expr_str << "\n"
<< "Source:\t\t" << file << ", line " << line << "\n";
abort();
}
}
Ahora, puede utilizar esta
M_Assert(ptr != nullptr, "MyFunction: requires non-null argument");
Y en caso de error obtendrá un mensaje como este:
Assert falló: MyFunction: requiere no nulo argumento
esperado: ptr = nullptr
Fuente: C: \ MyProject \ src.cpp, línea 22
agradable y limpio, no dude para usarlo en su código =)
Puede definir una macro, como [esto] (http://stackoverflow.com/a/3767883/1070480). – HelloGoodbye