重複の可能性:
c++11 での自動参照
C++ を学べば学ぶほど、これまでのところ (ほぼ。以下を参照)、基本的にすべてが理にかなっていることに気づきました。すべてが期待どおりに動作するため、ルールを暗記する必要はありません。したがって、主なことは実際に概念を理解することになり、残りは自然に処理されます。
例えば:
const int ci = 0;
auto &a = ci; //automatically made const (const int &)
これは機能し、理にかなっています。のタイプの他のものはa
ばかげています。
しかし、今これらを取ります:
auto &b = 42; //error -- does not automatically become const (const int)
const auto &c = 42; //fine, but we have to manually type const
なぜ最初はエラーになるのですか?コンパイラがこれを自動的に検出しないのはなぜですか? const
手動で入力する必要があるのはなぜですか? 厳密なルールを暗記せずに物事を理解できるように、基本的なレベルでその理由を本当に理解したいと思います (上記参照)。