steffen
¿Existe una diferencia semántica entre auto const
y const auto
o significan lo mismo?
los const
El calificador se aplica al tipo inmediatamente a la izquierda a menos que no haya nada a la izquierda, entonces se aplica al tipo inmediatamente a la derecha. Así que sí, es lo mismo.
-
Si no queda nada, entonces está bien (y viceversa) 🙂
– SeshadriR
4 sep 2018 a las 11:51
-
Realmente no es así como funciona, especificadores y calificadores (que preceden al declarante) puede aparecer en cualquier orden, por ejemplo
long volatile unsigned const typedef long cvull;
. El tipo no está (totalmente) a la izquierda ni a la derecha deconst
.– Arne Vogel
5 de septiembre de 2018 a las 8:31
-
@ArneVogel Dios mío, ¿por qué?
typedef
está permitido en el medio 🙂– 4LegsDrivenCat
20 de noviembre de 2019 a las 3:08
-
Como comentó @ArneVogel, la respuesta no es completamente correcta. El hecho de que esta sea la respuesta aceptada es engañoso (y posiblemente peligroso).
– WillY
4 de enero de 2020 a las 0:42
-
@ArneVogel, ¿dónde podría leer más sobre esto, por favor?
– Krapnix
27 dic 2020 a las 22:00
andiperro
Ejemplo inventado:
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
Ambas cosas a
y b
tener tipo char* const
. No crea que simplemente puede “insertar” el tipo en lugar de la palabra clave auto
(aquí: const char* a
)! los const
palabra clave se aplicará a todo el tipo que auto
partidos (aquí: char*
).
-
La const realmente no se aplica a
char*
se aplica a lachar
parte, no la*
parte.– jbruni
3 de diciembre de 2019 a las 23:15
Es lo mismo, como cualquier otro tipo.
– chris
22 de mayo de 2012 a las 20:46
Puedo proporcionar una respuesta más precisa pero legalista. Dado que no te identificaste con language-lawyer, voy a suponer, por ahora, que no quieres tantos detalles.
– Arne Vogel
5 de septiembre de 2018 a las 8:34
@ArneVogel tienes tu oportunidad ahora 🙂
– Ígor Skochinsky
15 de noviembre de 2019 a las 14:49