Dre*_*ann 3 c++ casting boolean stream ostringstream
我偶然发现了这段代码.
std::ostringstream str;
/// (some usage)
assert( ! str );
Run Code Online (Sandbox Code Playgroud)
ostringstream在bool上下文中使用时表示什么?
这可能是编译和运行时不正确的用法吗?
Naa*_*aff 10
它会告诉您流是否当前有效.这是所有流可以做的事情.例如,如果文件未正确打开,则文件流可能无效.
作为旁注,此功能(将流测试为bool)是通过explicit operator bool 在C++ 11及更高void*版本中重载以及在C++ 11之前的版本中重载转换运算符来实现的.
这是一个链接,其中包含流可能失败的原因的一些示例.这不是特定于字符串流,但它确实适用于它们.
编辑:改bool到void*后马丁纽约指出我的错误.
| 归档时间: |
|
| 查看次数: |
2615 次 |
| 最近记录: |