在这个答案中,我谈到了使用
std::ifstream
对象的转换为bool
来测试流是否仍处于良好状态。我在Josuttis书中查找更多信息(如果您感兴趣,可以看看第600页),结果发现对象实际上重载了operator void*
。当流不好时,它返回一个空指针(可以隐式转换为false
),否则返回非空指针(隐式转换为true
)。为什么他们不直接重载operator bool
呢?