Template-Argumente

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Klassen-Templates (Übersicht) - Index

In der Deklaration von Klassen-Templates sind mehrere Argumente erlaubt. Template-Argumente können zusätzlich zu den Datentypen auch Werte repräsentieren:



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



Argumente, die kein Template-Typ sind, wie beispielsweise size, und Typenarguemte können Standardwerte haben. Der Wert, der für ein solches Argument angegeben werden kann, muss ein konstanter Ausdruck sein:



 const int N = 128;
 int i = 256;
 Buffer<int, 2*N> b1;// OK
 Buffer<float, i> b2;// Fehler: i ist keine Konstante



Da jede Instantiierung einer Template-Klasse tatsächlich eine Klasse ist, erhält sie eine Kopie der statischen Member. Auch Template-Funktionen erhalten eine eigene Kopie der statischen lokalen Variablen.