私は C っぽい C++ コードの一部を見つけて、(少しアカデミックな) 質問を自問しました。bool
if
int val;
if( (std::cin >> val) == 0 )
...
私はこれまでに得ました:
std::cin >> val
(a ref to) を返すcin
ため、istream&
- したがって、オペランドとしてandを
==
受け取ります。cin
0
istream
int
bool operator==(istream&, int)
利用可能な (および のそれぞれのメンバー関数も)とは思わないistream
ので、変換が必要ですか?
明確にするために、プログラマーの意図は、入力が成功したかどうかを確認することでした。つまり、if(!(std::cin >> val))
.