ステートメントは、真のif
式を評価します...真の式は、値を持つブール値true
、または暗黙的に変換できる何らかの値に直接評価できますtrue
(たとえば、数値/ポインター値は、0 以外の場合は真です)。
関数はまたは を返すtrue
かfalse
、ブール型または数値型への変換演算子を持つオブジェクトを返すことができます。
この場合、オブジェクトcin.get(c)
への参照を返しますcin
。これは、ブール値に暗黙的に変換できます ( http://www.cplusplus.com/reference/iostream/ios/operator_voidpt/void*
を参照)。入力の成功または失敗をチェックします。オペレーション。
これは、すべての関数またはすべての言語で機能するわけではありません。この方法でテストする意味のあるブール値または数値を返す関数でのみ機能します。例えば:
if (std::cin >> a >> b) // true if both inputted successfully...
if (my_vector.capacity()) // useless? - capacity may be >0 "true" irrespective of size()
if (my_vector.empty()) // makes sense - returns a boolean
if (my_vector.size()) // makes sense - returns a number, non-0 is "true"
// dubious style as a change from vector to list would require
// a change to !empty() to maintain O(1) performance in C++03