C++標準のセクション4.12で述べている、なぜC++で算術値または列挙値を暗黙的にブール値に変換できますか?
算術、列挙、ポインタ、またはポインタの右辺値メンバー型には、bool型の右辺値に変換することができます。ゼロ値、ヌルポインタ値、またはヌルメンバポインタ値はfalseに変換され、他の値はtrueに変換されます。次のコードが有効であることを意味し
は、
if(5)
std::cout << "WOW!";
それは構文的に有効ですが、意味的にはどんな意味がありません。私の質問は、なぜC++がそのような変なことを許しているのかということです。 AFAIK、それは混乱よりもむしろ有利ではありません。
これは単なるトローリングです。本当の質問ではありません。 –
ポスターはまともな歴史を持っていますが、これが本物ではないと思われる理由は何ですか? – AakashM
C(またはアセンブリ言語)で育った世界中のプログラマーの大群には意味的な意味があります。 –