標籤:

如何理解c++primer中關於auto的說明?

primer中有這樣兩句:

1、auto一般會忽略掉頂層const,同時底層const則會保留下來。

2、設置一個類型為auto的引用時,初始值中的頂層常量屬性仍然保留。和往常一樣,如果我們給初始值綁定一個引用,則此時的常量就不是頂層常量了。

第二句中的兩個初始值,分別指代的是什麼?


auto fuck = shit;

在常見的情況下相當於

remove_reference_t&&> fuck = shit;

如果你不想要這個效果的話,可以使用C++最新的邪神寫法:

decltype(auto) fuck = shit;


看一下這個:item 1:理解template類型的推導

auto和template是一樣的,如果還不知道:item 2: 理解auto類型的推導


Auto的推導方式和模板參數推導是一樣的,根據是不是universal reference分了幾種情況,有興趣的話可以去看modern effective c++的第一章。


頂層常量和底層常量的區別


推薦閱讀:

新手如何閱讀《C++ Primer》?
string頭文件和string.h頭文件是一樣的?
為什麼c++要「在頭文件中聲明,在源文件中定義」?

TAG:C | CPrimer |