从示例http://www.cplusplus.com/reference/istream/istream/read/开始,有以下语句
ifstream is;
...
...
if (is) { // What overloaded operater of **is** object is called here
....
}
调用 对象的重载运算符?
答案 0 :(得分:6)
从C ++ 11开始,转换运算符为bool
:
explicit operator bool() const;
在此之前,有一个转化运算符void*
:
operator void*() const;
对于任何非空指针,后者评估为true
,否则评估为false
。
答案 1 :(得分:2)
std::basic_ios
的{{3}}。
这在功能上等同于:
if ( ! is.fail() )