-2

我可以安全地使用类似的代码吗

fprintf(nullptr, "str");

或之类的

std::ofstream() << "str";

std::ofstream f;
f << "str";

C/C++ 标准中是否有此类情况的描述?

4

2 回答 2

2

std::ios_base::failbit当使用 C++ 流时,输出操作在被发送到流或std::ios_base::badbit设置时无效。如果流不表示成功是可以接受的,您可以只创建一个std::ostream带有空流缓冲区:

std::ostream nullstream(0);

If you want the stream to also indicate success, you can just use it with a stream buffer indicating success from overflow() and sync() but not doing anything.

于 2012-08-26T12:50:43.567 回答
0

这并没有回答您提出的问题,而是您应该提出的问题 - 您可以将属性分配给unusedGCC 中的变量,这将抑制警告。

http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Variable-Attributes.html

于 2012-08-26T12:45:54.363 回答