我可以安全地使用类似的代码吗
fprintf(nullptr, "str");
或之类的
std::ofstream() << "str";
和
std::ofstream f;
f << "str";
C/C++ 标准中是否有此类情况的描述?
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.
这并没有回答您提出的问题,而是您应该提出的问题 - 您可以将属性分配给unused
GCC 中的变量,这将抑制警告。
http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Variable-Attributes.html