2012-05-22 9 views

risposta

41

Il qualificatore const si applica al tipo a sinistra immediata a meno che non vi sia nulla a sinistra, quindi si applica al tipo a destra immediata. Quindi sì, è lo stesso.

9

esempio forzato:

std::vector<char*> test; 
const auto a = test[0]; 
*a = 'c'; 
a = 0; // does not compile 
auto const b = test[1]; 
*b = 'c'; 
b = 0; // does not compile 

Sia a e b hanno tipo char* const. Non pensare di poter semplicemente "inserire" il tipo al posto della parola chiave auto (qui: const char* a)! La parola chiave const si applicherà all'intero tipo con corrispondenze auto (qui: char*).