...
Na co to potrebujes? Nejak si nedokazu predstavit k cemu by to bylo uzitecne.
Pisem si vlastny kompilator (jazyk ma templaty ako v D, vytvaranie instancii, dedukciu a specializaciu template parametrov mam hotovu, teraz riesim overloading templatov).
c++ nema dedukciu typov zo specializacie, v takych pripadoch uz niesu pravidla rovnake ako v c++
Uz som asi zistil ako to funguje, kod nizsie to demonstruje:
class X{}
template t1(A, T : void function(U), U){enum t1 = "1";} //najmenej specializovany template
template t1(A, T : void function(T)){enum t1 = "2";} //
template t1(A, T : void function(A)){enum t1 = "3";} //najviac specializovany template
enum e = t1!(X, void function(X)); //e == 3