ジレンマのトラバース: C 11 の末尾戻り値の型構文の探索
C 11 では関数に新しい構文が導入され、開発者が次の関数を指定できるようになりました。パラメータの後の戻り値の型list:
auto func_name(int x, int y) -> int;
この構文は従来の宣言から逸脱しています:
int func_name(int x, int y);
この新しいスタイルの採用は依然として限定的ですが、新しいスタイルのデフォルトにすべきかという疑問が生じます。 C 11 プログラム?
トレーリングリターンの必要性と利点型
特定のシナリオでは、末尾の戻り値の型が必須になります。これには、引数名が必須であるラムダ関数と decltype インスタンスが含まれます。
さらに、後続の戻り値の型には利点があります。
混合スタイルに関する考慮事項
従来の戻り値型と後続の戻り値型が混在するコードベースでは、美観上の懸念が生じます。ただし、後続の戻り値の型は普遍的に適用できるわけではないことに注意してください。
結論
後続戻り値の型をデフォルトとして採用するかどうかの決定は、要素のバランスに依存します。これらは読みやすさと利便性の点で利点がありますが、普遍的に適しているわけではなく、完全にサポートされていない場合もあります。一貫した関数の配置が必要なコードベース、またはメンバーの typedef が目立つコードベースの場合、後続の戻り値の型には利点があります。ただし、可視性、発見可能性、互換性が重要な状況では、従来の構文の方が依然として望ましい場合があります。
以上がC 11 の末尾戻り型: 新しい標準となるべきか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。