Generičko programiranje

Pojam generičkog programiranja: parametrizovane strukture podataka i algoritmi. Generičko programiranje na jeziku C++: templejti funkcija, preklapanje (overload) generičkih funkcija, templejti klasa, specijalizacija templejta klasa (delimična i potpuna). Statički polimorfizam: prednosti, nedostaci i kombinovanje sa dinamičkim. Pojam templejt meta-programiranja: istorija,  oblik funkcionalnog programiranja,  izvršavanje dela algoritma u vreme prevođenja,  prednosti i nedostaci, rekurzija i grananje, napredne mogućnosti (templejt parametri, templejti sa promenljivim brojem parametara). Mehanizam izbora najbolje alternative među više funkcija istog imena (overload resolution). Tačka prilagođavanja (point of customization) u generičkom algoritmu. Primene: standardna biblioteka (STL, touple, initializer_list), određivanje i provera tipova, izračunavanje i provera vrednosti dostupnih u vreme prevođenja, optimizacija koda, policy based design.

2980-genericko-programiranje