ホームページ >バックエンド開発 >C++ >C 11 の「auto」は値と参照型をどのように決定しますか?

C 11 の「auto」は値と参照型をどのように決定しますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 07:53:31204ブラウズ

How Does

C 11 の "auto" の型推論セマンティクス

C 11 では、"auto" キーワードは変数の型を次から推測します。その初期化子の型。ただし、「auto」が値と参照のどちらに解決されるかを判断することは、曖昧な場合があります。

値と参照

「auto」による型推論の重要なルール" は、推定された型が宣言された型と同等であることを意味します。

  • 宣言された型が値型の場合、「auto」は値に解決されます。
  • 宣言された型の場合は参照型であり、「auto」は参照に解決されます。

  • auto i = v.begin(); - v.begin() は値による反復子を返すため、「auto」は値に解決されます。
  • const std::shared_ptr& get_foo(); - 関数の型は参照であるため、「auto」は参照に解決されます。
  • static std::shared_ptr s_foo; - 変数の型はポインターであるため、「auto」は値に解決されます。
  • std::vector<:shared_ptr>> c; - コンテナの型はポインタのベクトルであるため、「auto」は値に解決されます。

型推定

次の例は、型推論の動作:

<code class="cpp">int i = 5;
auto a1 = i;    // value
auto &a2 = i;  // reference</code>

この例では、「a1」は int (値) 型であり、「a2」は int& (参照) 型です。

結論

「auto」の型推論セマンティクスを理解することは、正しく効率的な C コードを作成するために重要です。宣言された型に「自動」解決するルールに従うことで、開発者は変数の型を正確に推論し、この機能の利点を活用できます。

以上がC 11 の「auto」は値と参照型をどのように決定しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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