可以删除所有呼叫printf()
using #define printf
。如果我有很多调试打印,例如std::cout << x << endl;
?怎样才能快速关机cout <<
使用预处理器在单个文件中声明?
正如“unwind”已经说过的,快速的解决方案是无所事事的流。不过还有更好的实现:
class NullStream {
public:
NullStream() { }
template<typename T> NullStream& operator<<(T const&) { return *this; }
};
您还有一个小问题std::cout
因为这是三个标记的序列,并且您真的不想重新定义std
or cout
单独。一个简单的解决方案是
#ifdef NDEBUG
#define COUT std::cout
#else
#define COUT NullStream()
#endif
COUT << "Hello, world" << std::endl;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)