Arguments des templates

De RAD Studio
Aller à : navigation, rechercher

Remonter à Présentation des templates de classes - Index

Plusieurs arguments sont autorisés en tant que parties de la déclaration de la classe template. Outre des types de données, ces arguments peuvent également représenter des valeurs :



 template<class T, int size = 64> class Buffer { ... };



A la fois les arguments qui ne représentent pas des types (comme size) et les arguments qui en représentent peuvent avoir des valeurs implicites. La valeur d'un argument d'un template qui ne représente pas un type doit être une expression constante :



 const int N = 128;
 int i = 256;
 Buffer<int, 2*N> b1;// OK
 Buffer<float, i> b2;// Erreur : i n'est pas une constante



Comme chaque instanciation d'une classe template est en fait une classe, elle reçoit sa propre copie de membres statiques. De même, les fonctions template obtiennent leurs propres copies de variables locales statiques.