Он автоматически вызывает постоянную или неконстантную версию в зависимости от того, какой параметр передан.Вы можете разыгрывать только от постоянных до неконстантных.Это может показаться глупым, но это путь мира.
Например, вы обычно можете сделать это:
void function(char foo);
void function(int foo);
function(4);
Компилятор "решит за вас", какой из них вызыватьВы можете сделать это явным образом, выполнив
int x;
function((int)x);
function((char)x);
Однако нет эквивалента для явной передачи перегруженной версии const.
Конечно, вы можете просто определить только версия const, и параметры будут просто переданы как const.