luokkafunktiotemplate
Luokkafunktiotemplate on ohjelmointikielissä käytetty käsite, jossa luokan jäsenfunktio määritellään template-parametreilla. Tämä mahdollistaa sen, että kyseisen jäsenfunktion käyttäytymistä voidaan mukauttaa eri tyyppien mukaan ilman, että luokan koko rakenne on templaatattu. Luokkafunktiotemplatekanavat eroaa sekä luokka-templaatista että erillisen funktiotemplaatin käytöstä: se koskee vain yhtä luokan jäsenfunktiota, jonka toimintaa voidaan varata yhä tyypin mukaan.
Luokan sisällä voidaan määritellä jäsenfunktio, joka on templaatio. Esimerkiksi:
std::cout << value << std::endl;
}
};
Tässä Printerin print on templaatti, joka hyväksyy minkä tahansa T-tyypin arvoa tulostettavaksi. Käyttö:
Jos luokka on itse templaatio, jäsenfunktiotemplate voivat käyttää sekä luokan templatparametreja että omia funktiotemplaatin parametrejaan:
void set(U const& value) { /* ... */ }
};
Luokkafunktiotemplatea voidaan käyttää erilaisia toiminnallisuuksia varten, kuten yhdenmukaistamaan tulostus, muunnokset tai erityiset käyttöliittymät riippumatta luokan varsinasta
Luokkafunktiotemplate ovat tehokas väline generisointiin, mutta ne voivat tuottaa epäselvää virheilmoitusta ja lisätä käännösaikaa. Ne tarjoavat