Sdílet prostřednictvím


Explicitní instance

Explicitní instance umožňuje vytvořit instanci třídy podle šablony nebo funkce bez skutečně použití kódu.Protože je užitečné při vytváření knihovny (LIB) soubory, které používají šablony pro distribuci, definice šablony bez instancí nejsou do objektu (obj) soubory.

Následující explicitně konkretizuje MyStack pro int proměnných a šest položek:

template class MyStack<int, 6>;

Tento příkaz vytvoří instanci z MyStack bez rezervace žádné úložiště objektu; generování kódu pro všechny členy.

Následující konkretizuje explicitně pouze členské funkce konstruktoru:

template MyStack<int, 6>::MyStack( void );

Funkce šablony lze vytvořit explicitně instanci podle jejich redeclaring argumentu určitý typ, jako například v Funkce vytváření instance šablony.

Konkrétní společnosti Microsoft

Můžete použít extern klíčové slovo k zabránění automatické vytváření instance členů.Příklad:

extern template class MyStack<int, 6>;

Podobně můžete označit konkrétní členy jako externí a není vytvořenou instanci takto:

extern template MyStack<int, 6>::MyStack( void );

[!POZNÁMKA]

extern Klíčové slovo v specializace se vztahuje pouze na členské funkce definovaná mimo těla třídy.Funkce definované uvnitř deklarace třídy vždy obvyklá a jsou považovány za vložené funkce.

Viz také

Referenční dokumentace

Funkce šablon