According to cppreference.com, the C++ static_cast
operator's level of precedence is 2。static_castのような演算子の優先度はなぜですか?
これらのレベルはなぜ定義されていますか?何らかの理由で考えることができません。誰かが例を挙げることはできますか?優先の
According to cppreference.com, the C++ static_cast
operator's level of precedence is 2。static_castのような演算子の優先度はなぜですか?
これらのレベルはなぜ定義されていますか?何らかの理由で考えることができません。誰かが例を挙げることはできますか?優先の
標準では優先レベルは定義されていません。これらは文法から導かれたです。
他の構文上の機能と同様に、static_cast
にはこの文法の場所があります。その使用には括弧が必要なため、オペランド式は曖昧になることはありませんが、文法自体の意味は無意味ではなく、文法から優先レベルを引き出すことは意味がありません。したがって、標準はここで何も狂っていません。
あなたが引用したソースがstatic_cast
の優先レベルを記載していることは無意味です。 が間違っているのはではありません。
+1、 ) –
C++キャスト演算子のレベルはこのように述べ
2ですか?標準では演算子の優先順位は定義されていません。これは、文法をBNFのような表記法で定義します。
http://en.cppreference.com/w/cpp/language/operator_precedence –
@ChristianAmmer: 'cppreference.com'は標準ではありません。だからこのページを書いた人に相談してください。正式に 'static_cast'は' .'、 ' - '、 '[]'などと一緒に* postfix-expression *であるので、彼はこのようにしたと思います... – ybungalobill
優先順位がない場合、コードは非確定的になります。 – RageD
優先レベル2は、偶然にも機能アプリケーションの優先順位と同じですか?そして、これの原因は何ですか? –
+1:合理的に言えば公正な質問です。 –