C では、関数の引数内の const 参照の配置に疑問が生じることがあります。次の 2 つのコード スニペットを考えてみましょう。
int foo1(const Fred &arg) { ... }
int foo2(Fred const &arg) { ... }
意味的には、これら 2 つの引数に違いはありません。言語はこれらを同じ型として扱い、両方とも Fred 型のオブジェクトへの定数参照を参照します。
スタイルに関する考慮事項:
ただし、スタイルに関しては次のようになります。 、推奨される使用法はプログラマによって異なります。
右から左への解析:
右から左への解析ルールに従って、修飾子 (const など) を適用する必要があります。左側のタイプです。これにより、T const& の使用がサポートされます。
ただし、const T& は右から左へ効果的に解析することもできることに注意することが重要です。これは、型 T の定数値への参照を示します。さらに、T const* のあいまいさ (「定数 T へのポインター」ではなく「T へのポインター定数」として解釈される可能性があります) により、const T& はより明確な選択肢となります。
実用性:
読みやすさと一般的な使用法の観点から、const T&/const T は T const&/T const を上回る勢いを増しています。これは、Stroustrup の本や C 標準などの広く認識されているソースでこれらのスタイルが普及しているためと考えられます。一般に受け入れられている慣行に従うと、コードの可読性が向上します。
以上が関数の引数内の const 参照: `const T&` または `T const&`?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。