Browse Source

fixed debug macros

main
Stefan Pranger 4 years ago
parent
commit
cd93c42cf0
  1. 26
      io/debug.h

26
io/debug.h

@ -3,19 +3,25 @@
#include <iostream> #include <iostream>
#include <string> #include <string>
struct X { struct print {
#ifdef LOG_DEBUG print() { if(false) std::cout.setstate(std::ios_base::failbit); }
X() { if(false) std::cout.setstate(std::ios_base::failbit); } ~print() { if(false) { std::cout.clear(); } else { std::cout << std::endl << std::flush; } }
~X() { if(false) { std::cout.clear(); } else { std::cout << std::endl << std::flush; } } };
#else struct noprint {
X() { std::cout.setstate(std::ios_base::failbit); } noprint() { if(true) std::cout.setstate(std::ios_base::failbit); }
~X() { std::cout.clear(); } ~noprint() { if(true) { std::cout.clear(); } else { std::cout << std::endl << std::flush; } }
#endif
}; };
#define DEBUG (X(), std::cout << "DEBUG[" << __FILENAME__ << ":" << __LINE__ << " in " << __func__ << "()]: ") #ifdef LOG_DEBUG
#define WARN (X(), std::cout << "WARN [" << __FILENAME__ << ":" << __LINE__ << " in " << __func__ << "()]: ") #define DEBUG (print(), std::cout << "DEBUG[" << __FILENAME__ << ":" << __LINE__ << " in " << __func__ << "()]: ")
#define WARN (print(), std::cout << "WARN [" << __FILENAME__ << ":" << __LINE__ << " in " << __func__ << "()]: ")
#else
#define DEBUG (noprint(), std::cout << "")
#define WARN (noprint(), std::cout << "")
#endif
#ifdef LOG_DEBUG #ifdef LOG_DEBUG
#define STEP \ #define STEP \

|||||||
100:0
Loading…
Cancel
Save