GCC trata estas dos declaraciones de funciones como equivalentes:punteros const en la resolución de sobrecarga
void F(int* a) { }
void F(int* const a) { }
test.cpp: In function 'void F(int*)':
test.cpp:235: error: redefinition of 'void F(int*)'
test.cpp:234: error: 'void F(int*)' previously defined here
Esto tiene algún sentido, porque una persona que llama siempre va a ignorar la const en este caso ... sólo afecta al uso del parámetro 'a' dentro de la función.
Lo que me pregunto es dónde (si es que en alguna parte) el estándar dice que está específicamente bien descartar los calificadores en los punteros utilizados como argumentos de función con el fin de resolver la sobrecarga.
(Mi problema real es que me gustaría averiguar dónde GCC elimina estos calificadores inútiles internamente, y dado que la interfaz C++ de GCC está llena de comentarios que hacen referencia al estándar, la sección relevante del estándar podría ayudarme a encontrar . el punto correcto)
AFAIK no es solo para punteros. – Troubadour