Consider the following functions:
void f(int) {...}
void f(const int&) {...}
They are different and their definitions compile together successfully. But is there a way to call any of them when they both participate in overload resolution? And if there is no way, why are they not considered the same function like these two:
void g(int) {...}
void g(const int) {...} // error: redefinition of 'void g(int)'