ホームページ >バックエンド開発 >C++ >C 11 の「auto」キーワードは使いすぎていますか: 明示的な入力を避けるべきときは?

C 11 の「auto」キーワードは使いすぎていますか: 明示的な入力を避けるべきときは?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-08 20:11:10409ブラウズ

Is C  11's `auto` Keyword Overused: When Should You Avoid Explicit Typing?

C 11 の Auto キーワードは過剰ですか?

auto キーワードは、設計者の意図どおり、複雑なテンプレート型を処理する上で非常に貴重であることが証明されていますが、単純なシナリオでは過剰使用に対する懸念が生じます。 std::make_shared() のような単純な式であっても、型の明示的な記述を避けるために auto を使用する必要がありますか?

使用目的と実用的なガイドライン

によるとC 標準委員会では、型が難しいが、右辺の型が明らかです。たとえば、次のコードを考えてみます。

my_multi_type::nth_index<2>::type::key_type::composite_key_type::
    key_extractor_tuple::tail_type::head_type::result_type

boost::multi_index で複合キー タイプを取得するには、この複雑な式が必要です。型が int であることがわかっている場合でも、このような場合には可読性を高めるために auto を使用する必要があります。

推奨される使用例

次の場合に auto を使用します。

  • リーダーは auto で表される型を簡単に推測できます。
  • 型は、
  • 可読性が向上し、不必要な繰り返しが防止されます。

  • での auto の使用型が次であるため、 std::make_shared() が適切です。
  • 式 bla() では、bla() はshared_ptr を返しますが、foo の型が不明なため、auto の使用は不明瞭です。
  • ループ内で auto を使用すると、イテレータの型はわかっていますが、auto it = v.begin(); などの特定のイテレータはわかっていないため、コードを拡張できます。

注意事項

  • 型を明示的に指定すると、ドキュメント化と健全性チェックに役立ちます。
  • auto を使用する場合は注意してください。予期せぬ事態を引き起こす可能性があるため、符号なし変数を含む for ループを使用しないでください。エラー。

以上がC 11 の「auto」キーワードは使いすぎていますか: 明示的な入力を避けるべきときは?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。