Definicja ta zawiera rekurencyjne tworzenie instancji szablonu (Silnia<N-1>).
Drugi szablon, jest tak zwaną specjalizacją i jest użyty w celu zatrzymania rekurencyjnego wywoływania szablonu.
Przy kompilowaniu powyższego programu, w trakcie działania kompilatora tworzone są instancje szablonów od Silnia<0>, do Silnia<4>. Gdyby zadeklarować drugą zmienną typu const inicjalizowaną poprzez Silnia<3>::wartosc, kompilator nie będzie tworzył nowego szablonu, lecz skorzysta z szablonu stworzonego przy tworzeniu szablonu Silnia<4>. Należy pamiętać, że kompilator może zawierać ograniczenia na możliwą głębokość rekurencji.
Kategoria:C++