我们有可以在silence mode
and上运行的守护进程print mode
(打印到 std::cout)。如何在silence
没有开销和 io 调用的情况下实现它。建议更多更好的方法来做到这一点!或者写什么方法比较好!(优点/缺点)
例如:
1方式:
代码中的简单位置std::cout << "blah-blah-blah: " << var << std::endl;
何时需要静音close(STDOUT_FILENO)
或将 cout 重写为dev/null
(如何?)
2种方法
global bool FLAG_SILENCE
在每次 cout 调用之前使用并检查它:if (!FLAG_SILENCE) std::cout << "blah-blah-blah: " << var << std::endl;
3 路
预定义宏#define SILENTCOUT std::cout
,当需要保持沉默时#define SILENTCOUT SOMETHING
(某事 = 一些具有运算符<<
且没有过度硬(does not know how to realise, seems need to define our own function with defined
<<` 的函数,什么都不做)
4 路
预定义宏#define SILENTCOUT(x) std::cout << x << std::endl
使用SILENTCOUT( "mess" )
——危险,非常丑陋