91 votes

Est-ce que "auto const" et "const auto" sont identiques ?

Y a-t-il une différence sémantique entre auto const y const auto ou est-ce qu'ils signifient la même chose ?

122voto

AJG85 Points 7689

En const s'applique au type situé immédiatement à gauche, sauf s'il n'y a rien à gauche, auquel cas il s'applique au type situé immédiatement à droite. Donc oui, c'est la même chose.

29voto

AndiDog Points 28417

Exemple artificiel :

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

Les deux sites a y b avoir le type char* const . Ne pensez pas que vous pouvez simplement "insérer" le type à la place du mot-clé. auto (ici : const char* a ) ! Le site const s'appliquera à l'ensemble du type que auto matches (ici : char* ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X