模板

用来偷懒。不要尝试一些奇奇怪怪的运算符。

#define ERR(args...) { string _s = #args; replace(_s.begin(), _s.end(), ',', ' '); stringstream _ss(_s); istream_iterator<string> _it(_ss); err(_it, args); }

void err(istream_iterator<string> it) {cerr << "
";}
template<typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
    cerr << *it << "=" << a << ", ";
    err(++it, args...);
}

#define ERR1(arg,n) { cerr<<""<<#arg<<"=
  "; for(int i=1;i<=n;i++) cerr<<arg[i]<<" "; cerr<<"
"; }
#define ERR2(arg,n,m) { cerr<<""<<#arg<<"=
"; for(int i=1;i<=n;i++) { cerr<<"  "; for(int j=1;j<=m;j++)cerr<<arg[i][j]<<" "; cerr<<"
"; } }
原文地址:https://www.cnblogs.com/Yinku/p/11204613.html