templatemetaprogrammoinnissa
Templatemetaprogrammoinnin tarkoituksena on ohjelmoinnin tekniikka, jossa mallien (templates) avulla suoritetaan laskelmia ja päätöksiä käännösaikana. Tämän lähestymistavan tavoitteena on tuottaa tehokasta, tyypillisesti zero-cost -koodia, jolla ajonaikainen kustannus minimoidaan tai vältetään kokonaan.
Perusta on rekursiivinen mallien instansointi ja erikoistuminen. Mallien avulla voidaan laskea arvoja, muodostaa tyyppejä ja valita
Käyttötapauksia ovat tyypin ominaisuuksien selvittäminen (type traits), oikean toteutuksen valinta SFINAE:n kautta (substitution failure is not
Hyödyt ja rajoitukset: templatemetaprogrammointi mahdollistaa nopean, tehoisan koodin ilman ajonaikaisia kustannuksia, mutta koodi voi olla vaikeasti
Nykyään C++-kielessä käytetään sekä perinteistä templatemetaprogrammointia että moderneja keinoja, kuten constexpr-funktioita ja if constexpr -rakennetta (C++17),