Sobrecarga de función basada en el valor frente a la referencia constante
¿Declara algo como lo siguiente
void foo(int x) { std::cout << "foo(int)" << std::endl; }
void foo(const int &x) { std::cout << "foo(const int &)" << std::endl; }
Alguna vez tiene sentido? ¿Cómo podría la persona que llama diferenciar entre ellos? He intentad
foo(9); // Compiler complains ambiguous call.
int x = 9;
foo(x); // Also ambiguous.
const int &y = x;
foo(y); // Also ambiguous.