我可以安全地使用像
这样的代码fprintf(nullptr, "str");
或者喜欢
std::ofstream() << "str";
和
std::ofstream f;
f << "str";
C / C ++标准中是否有这种情况的描述?
答案 0 :(得分:2)
使用C ++流时,输出操作在通过std::ios_base::failbit
或std::ios_base::badbit
设置发送到流时无效。如果流不表示成功是可接受的,则可以使用空流缓冲区创建std::ostream
:
std::ostream nullstream(0);
如果您希望流也表示成功,您可以将其与流缓冲区一起使用,表明overflow()
和sync()
成功但没有做任何事情。
答案 1 :(得分:0)
这不会回答您提出的问题,而是您应该问的问题 - 您可以将unused
等属性分配给GCC中的变量,这会抑制警告。
http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Variable-Attributes.html