0
私はstd :: numeric_limitsでいくつかのことを試していました。そして興味深い行動を観察した。std :: numeric_limits <int> :: has_infinity +条件付き3項演算子
cout << "Min = " << (std::numeric_limits<int>::has_infinity) ? "TRUE" : "FALSE";
出力0
cout << "Min = " << (std::numeric_limits<int>::has_infinity ? "TRUE" : "FALSE");
出力FALSE
三項演算子はどんな意味を持っていなかった最初のケースでは周りのstd::numeric_limits
ブレース()
開始と終了の位置を注意してください。中括弧を最後に移動するとき、三項演算子(?:
)だけが有意義であることがわかります。
この現象が発生する理由は何ですか?
この説明は 'std :: numeric_limits'と直交しています。 – erip
コンパイルすると 'error: 'テンプレートが返されます struct std :: numeric_limitsはテンプレートパラメータなしで使用されます cout <<" Min = "<<(std :: numeric_limits :: has_infinity)? "TRUE": "FALSE"; '。 – v7d8dpo4
'std :: boolalpha'にも注意してください。 – o11c