在if条件下调用什么重载运算符?

时间:2015-03-20 12:31:15

标签: c++ if-statement

从示例http://www.cplusplus.com/reference/istream/istream/read/开始,有以下语句

ifstream is;
...
...

if (is) { // What overloaded operater of **is** object is called here
....
}

调用 对象的重载运算符?

2 个答案:

答案 0 :(得分:6)

从C ++ 11开始,转换运算符为bool

explicit operator bool() const;

在此之前,有一个转化运算符void*

operator void*() const;

对于任何非空指针,后者评估为true,否则评估为false

答案 1 :(得分:2)

std::basic_ios的{​​{3}}。

这在功能上等同于:

if ( ! is.fail() )