33 lines
1.1 KiB
C++
33 lines
1.1 KiB
C++
namespace factor {
|
|
|
|
extern bool factor_print_p;
|
|
|
|
#ifdef FACTOR_DEBUG
|
|
|
|
// To chop the directory path of the __FILE__ macro.
|
|
inline const char* abbrev_path(const char* path) {
|
|
const char* p1 = strrchr(path, '\\');
|
|
const char* p2 = strrchr(path, '/');
|
|
return (p1 > p2 ? p1 : p2) + 1;
|
|
}
|
|
|
|
#define FACTOR_PRINT(x) \
|
|
do { \
|
|
if (factor_print_p) { \
|
|
std::cerr \
|
|
<< std::setw(16) << std::left << abbrev_path(__FILE__) \
|
|
<< " " << std::setw(4) << std::right << __LINE__ \
|
|
<< " " << std::setw(20) << std::left << __FUNCTION__ \
|
|
<< " " << x \
|
|
<< std::endl; \
|
|
} \
|
|
} while (0)
|
|
#define FACTOR_PRINT_MARK FACTOR_PRINT("")
|
|
|
|
#else
|
|
#define FACTOR_PRINT(fmt, ...) ((void)0)
|
|
#define FACTOR_PRINT_MARK ((void)0)
|
|
#endif
|
|
|
|
}
|