C/C++ 程序 debug print
#ifdef DEBUG
#define DBOUT(x) x
#else
#define DBOUT(x)
#endif
DBOUT(cout<<"debug message"<<endl);
Debug with Empty Class
#ifdef NDEBUG
class DebugStream {};
template <typename T>
DebugStream &operator<<(DebugStream &s, T) { return s; }
#else
typedef ostream DebugStream;
#endif
DebugStream debug;
debug << "some error\n";
-- Debug-only ostreams in C++?
Debug with Short-Circuiting
#ifdef DEBUG
#define DBOUT std::cerr
#else
#define DBOUT 0 && std::cerr
#endif
TRACE_DEBUG
TRACE_DEBUG("some message");
TRACE_FUNC
TRACE_ERROR
TRACE_LOOP
TRACE_INFO
TRACE_DEBUG