1。#define debug(...) printf( __VA_ARGS__)
2. #define debug(...) std::cout<< __VA_ARGS__
显然,1表示正常,2编译时会出错。 是否有可能使用&#34; std :: cout&#34;变量参数?
这个宏的重点是什么?
&#39;调试&#39;宏用于打印一些东西来调试代码。
void test(const classtype1 &obj1,const classtype2 &obj2)
{
// rewrite operator<<
debug(obj1,obj2);
//if use printf, I must call tostring method(or something likes that) to
//series the object to string.
debug(obj1.tostring(),obj2.tostring());
...
}
答案 0 :(得分:0)
您可以执行以下操作:
#define DEBUG(x) do { std::osacquire( std::cerr ) << __FILE__ << ":" << __LINE__ << " " << x << std::endl; } while (0);
然后在任何要使用宏的地方:
DEBUG( obj1.tostring() + " some stuff " + obj2.tostring() )