auto a = 10;
コンパイラが知っているのa
はint
、コンパイル時または実行時ですか? 実行時に型を推測すると、パフォーマンスに影響しませんか?
ありがとう
auto a = 10;
コンパイラが知っているのa
はint
、コンパイル時または実行時ですか? 実行時に型を推測すると、パフォーマンスに影響しませんか?
ありがとう
他の回答が対処しなかったことをいくつか追加したかっただけです。
auto
、特別な扱いは受けず、コンパイル時に型を推測する必要があります。 auto
あなたは、どのように使用されるべきかを誤解しています。はい、できますauto i = 2;
。問題なく動作します。しかし、自動が必要な状況は、たとえばラムダです。ラムダには名前を付けることができる型がありません (ただし、に割り当てることはできますstd::function
)。これが役立つもう 1 つの状況は、クラスまたは関数テンプレート内で、特定の操作のタイプを把握することが非常に困難な場合があります (場合によっては不可能な場合もあります)。指定された型では、複数の型があると、どの型が返されるかを判断することが本質的に不可能になる可能性があります。decltype
もちろん、戻り値を把握するために関数を a でラップすることもできますが、 an のauto
方がはるかに簡潔に記述できます。 auto
これはコンパイル時に完全に行われ、パフォーマンスの違いはありません。
auto i = 2;
と同じようにコンパイルします
int i = 2;