Členové šablon třídy
Členové šablony třídy jsou jako členy libovolné třídy.Mohou být statické nebo nestatické, mohou obsahovat datové členy nebo členské funkce nebo i jiné šablony.Mohou být definovány uvnitř šablony třídy nebo mimo ni.Členy šablony třídy mohou odkazovat na neznámé typy definované v seznamu argumentů šablony, jako by šlo o platné názvy typů a mohou odkazovat na neznámé hodnoty objektů uvedené v seznamu argumentů šablony, jako kdyby to byly konstantní výrazy.
Když jsou členy šablony třídy definovány mimo deklaraci třídy, musí být deklarovány jinak než ty z nešablonové třídy.Deklaraci musí předcházet syntaxe určující šablonu třídy, které je funkce členem.
template < template-argument-list > definition
Poznámky
Deklarátor členské funkce mimo šablonu třídy musí také zadat argumenty šablony.
template-name < template-argument-list > :: identifier
Příklad
// members_of_class_templates1.cpp
// compile with: /c
template <class T, int i>
class TempClass {
int MemberSet(T, int);
};
template <class T, int i>
int TempClass< T, i >::MemberSet( T a, int b ) {
if( ( b >= 0 ) && (b < i) ) {
Tarray[b++] = a;
return sizeof( a );
}
else
return -1;
}
Jazyk C++ povoluje také vnořené šablony označované jako členské šablony.Členské šablony mohou být šablony vnořené třídy nebo šablony členské funkce.