我找到了一段 C-ish C++ 代码并问自己一个(有点学术性的)问题,这里发生了哪些隐式类型转换才能达到bool要求if?
int val;
if( (std::cin >> val) == 0 )
...
我做到了这一点:
std::cin >> val返回 (a ref to)cin,因此istream&- 因此
==接收cin和0作为操作数,即istream和int
我认为没有bool operator==(istream&, int)可用的(也没有相应的成员函数istream),那么是否涉及转换?
需要明确的是,程序员的意图是检查输入是否成功,即是否应该写入if(!(std::cin >> val)).