Ich habe diesen Code:Warum ruft die Überladung von Template- und Nicht-Template-Funktionen mit der "gleichen Signatur" die Nicht-Template-Funktion auf?
template<
class T = const int &
> void f(T) {}
void f(const int &) {}
int main() {
f(0);
}
Warum es die zweite, anstatt zuerst nicht nennen? Ich würde von ihnen als die gleichen denken, aber sie sind eindeutig nicht, da ich keinen Neudefinitionsfehler erhalte.
http://stacked-crooked.com/view?id=f9aac9532f21077433027f9ae341417b Anrufe Nummer 2 hier. – Rapptz
@Rapptz Ja, ich habe bearbeitet. – user2030677