gpt4 book ai didi

c++ - 使用预处理器取消 std::cout 代码行

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:43 24 4
gpt4 key购买 nike

可以删除对 printf() 的所有调用使用 #define printf .如果我有很多像 std::cout << x << endl; 这样的调试打印怎么办? ?如何快速关闭 cout <<使用预处理器在单个文件中声明?

最佳答案

正如“unwind”所说,快速解决方案是什么都不做的流。不过还有更好的实现方式:

class NullStream {
public:
NullStream() { }
template<typename T> NullStream& operator<<(T const&) { return *this; }
};

std::cout 仍然存在一个小问题,因为这是三个标记的序列,您真的不想重新定义 std cout 单独。一个简单的解决方案是

#ifdef NDEBUG
#define COUT std::cout
#else
#define COUT NullStream()
#endif

COUT << "Hello, world" << std::endl;

关于c++ - 使用预处理器取消 std::cout 代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1389538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com