En primer lugar, los códigos de ejemplo:C++ typedef interpretación de punteros const
Caso 1:
typedef char* CHARS;
typedef CHARS const CPTR; // constant pointer to chars
Textually reemplazando CHARS se convierte en:
typedef char* const CPTR; // still a constant pointer to chars
Caso 2:
typedef char* CHARS;
typedef const CHARS CPTR; // constant pointer to chars
Textualmente reemplazando a CHARS se convierte en:
typedef const char* CPTR; // pointer to constant chars
En el caso 2, después de reemplazar textualmente CARACTERES, el significado de la typedef cambiado. ¿Por qué esto es tan? ¿Cómo interpreta C++ esta definición?
En general, es una mala idea typedef punteros (ocultando la estrella), precisamente porque const no se puede insertar entre la punta-a-tipo y la estrella más. – Tronic
Tipo de duplicado de http://stackoverflow.com/questions/1808471/is-const-lpvoid-equivalent-to-void-const/1808665 –