Innanzitutto, codici di esempio:C++ typedef interpretazione dei puntatori const
Caso 1:
typedef char* CHARS;
typedef CHARS const CPTR; // constant pointer to chars
testualmente sostituzione CARATTERI diventa:
typedef char* const CPTR; // still a constant pointer to chars
Caso 2:
typedef char* CHARS;
typedef const CHARS CPTR; // constant pointer to chars
Sostituzione manuale di CHARS diventa:
typedef const char* CPTR; // pointer to constant chars
Nel caso 2, dopo la sostituzione testualmente CHARS, il significato del typedef cambiato. Perché è così? Come interpreta C++ questa definizione?
In generale, è una cattiva idea di typedef puntatori (nascondendo la stella), proprio perché const non può essere inserito tra la punta-to-type e la stella più. – Tronic
Sort-of duplicate of http://stackoverflow.com/questions/1808471/is-const-lpvoid-equivalent-to-void-const/1808665 –