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