У меня есть этот код:
template<
class T = const int &
> void f(T) {}
void f(const int &) {}
int main() {
f(0);
}
Почему он вместо второго вызывает второй? Я бы подумал, что они такие же, но они явно не такие, как я не получаю ошибку переопределения.