Witam,
jestem na etapie uczenia się języka C++. Mam takie problematyczne pytanie
Mam następujący kod:
template<class T, class C> void foo(T op1, C op2){}; // linia_1
template<class C, class T> void foo(C op1, T op2){}; // linia_2
template<class T, class C> void foo(C op1, T op2){}; // linia_3
Pytanie brzmi: jeśli sprobuje skompilować kod powyżej,która z linii spowoduje pojawienie się błędu?
Odpowiedz to linia_2. Jest ktoś w stanie mi wytłumaczyć dlaczego tak jest?
Czy chodzi o przeladowanie funkcji foo? Lista argumentow funkcji w linii 2 i 3 jest ta sama, roznia sie kolejnoscia typow w deklaracji template. Dlaczego ten spowouje linia 2 a nie 3?