[C++] Szblony


(Lisamariaheather) #1

Uczę się właśnie czym są szablony w C++. Mam pytanie. Jest taki szablon:

template

class genClass

{

	genType storage[size];

};

co oznacza słowo class po "<", do czego to się odnosi co tam może jeszcze być.

PS. i rozmumiem, że zamiast genType mogę sobie wpisać aaa, byle się zgdzało z tym w "{}"


(Sawyer47) #2

To nazwa typu, który jest parametrem szablonu, to może być dowolny poprawny identyfikator. Często używa się pojedynczych wielkich liter.


(Pz16) #3

Z tymi pojedynczymi literami parametrów szablonu jest jak z pojedynczymi literami w nazwach zmiennych. Lepszym rozwiązaniem jest nazwanie takich typów, tak by wiedzieć do czego będą używane, ew. jednoliterowa nazwa parametru, ale w szablonie typedef tego jednoliterkowca do czegoś bardziej czytelnego - to ma dodatkowy plus, bo typedefa mozna później użyć przy metaprogramowaniu.

template

class genClass {

public:

    typedef T value_type;

    static inline size_t size() { return Size; }

private:

    value_type storage_[Size];

};