Gibt es einen Unterschied oder ist es der gleiche?Ist 'auto const' und 'const auto' gleich?
25
A
Antwort
41
Das Qualifikationsmerkmal gilt für den Typ unmittelbar links, es sei denn, es gibt nichts auf der linken Seite, dann gilt es für den Typ unmittelbar rechts. Also, es ist dasselbe.
9
konstruiertes Beispiel:
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
Beide a
und b
Typ haben char* const
. Glauben Sie nicht, dass Sie den Typ einfach anstelle des Schlüsselwortes auto einfügen können (hier: const char* a
)! Das Schlüsselwort const
gilt für den gesamten Typ, der auto
entspricht (hier: char*
).
Es ist das gleiche, wie jeder andere Typ. – chris