Introduction - If you have any usage issues, please Google them yourself
#ifndef EXPRESSION_RESULT
#define EXPRESSION_RESULT
#include <iostream>
#include <iomanip>
namespace zjun {
class line_number {
private:
int num
int width
public:
line_number(int n, int w):num(n), width(w) {}
friend std::ostream& operator << (std::ostream& os, const line_number& rhs) {
os << "#" << std::setw(rhs.width) << std::setfill( 0 ) << rhs.num
<< std::setfill( )
return os
}
}
}
#ifndef NDEBUG
#define XR(expr) std::cout << zjun::line_number(__LINE__, 2) << ": " <<#expr << /*std::flush <<*/ "\t==>" std::cout << std::boolalpha << (expr) << std::noboolalpha << std::endl
#define XRv(expr) std::cout << zjun::line_number(__LINE__, 2) << ": " <<#expr << /*std::flush <<*/ "\t==>" expr
#define XRdctor(class_name) std::cout <<