C'è una differenza o è la stessa?È "auto const" e "const auto" uguali?
25
A
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*
).
È lo stesso, come qualsiasi altro tipo. – chris