const int i = 42;
const auto &k = i;
k
(const
はすでにauto
の前に指定されているため)const int&
か、単にint
すべきですか?constをautoとともに使用するときの参照(またはポインタ)のタイプは何ですか?
注:だから、kはタイプ「のconst int型の明確である
error: cannot assign to variable 'k' with const-qualified type 'const int &'
&: cout << "k is " << typeid(k).name() << endl;
プリントi
'k'は、' i'を参照する 'const int&'の型になります。 '&i'と'&k'を比較することで、[確認しやすい](http://rextester.com/XCXP29391)。 –
@IgorTandetnikの場合、なぜそれがちょうどiであるのか、余分なconst(autoの前)がこの場合にどのように動作するのかを示すtypeid(k).name 、 ご協力いただきありがとうございます ! –
'const'は何もしません - 結果はそれなしで同じになります。 'const'では、' auto'は 'int'、' k'は 'const int&'です。 'const'がなければ、' auto'は 'const int'として推論され、' k'は 'const int&'になります。 'typeid'は式の型を取得します - 式' k'は 'int'型の左辺値です(参照型を持つ式のようなものはありません)。 –