Sdílet prostřednictvím


type_info – třída

Třída type_info popisuje typ informace generované kompilátorem v rámci programu.Objekty této třídy účinně ukládají ukazatel na název typu.Třída type_info také ukládá kódovanou hodnotu vhodnou pro porovnání dvou typů pro rovnost nebo pořadí řazení.Pravidla kódování a pořadí řazení typů nejsou specifikovány a mezi programy se mohou lišit.

Soubor hlaviček <typeinfo> musí být zahrnut pro použití třídy type_info.Rozhraní třídy type_info je:

class type_info {
public:
    virtual ~type_info();
    size_t hash_code() const
    _CRTIMP_PURE bool operator==(const type_info& rhs) const;
    _CRTIMP_PURE bool operator!=(const type_info& rhs) const;
    _CRTIMP_PURE int before(const type_info& rhs) const;
    _CRTIMP_PURE const char* name() const;
    _CRTIMP_PURE const char* raw_name() const;
};

Instance objektů třídy type_info nelze vytvořit přímo, protože tato třída má pouze soukromý kopírovací konstruktor.Jediný způsob, jak vytvořit (dočasný) objekt třídy type_info je použít operátor typeid.Protože operátor přiřazení je také soukromý, nelze kopírovat nebo přiřadit objekty třídy type_info.

Funkce type_info::hash_code definuje hashovací funkci, která je vhodná pro mapování hodnot typu typeinfo na rozdělení hodnot indexu.

Operátory == a != lze použít k porovnání rovnosti a nerovnosti s jinými objekty třídy type_info.

Neexistuje žádná souvislost mezi pořadí třídění typů a vztahy dědičnosti.Pomocí členské funkce type_info::before lze určit pořadí řazení typů.Není zaručeno, že funkce type_info::before vrátí stejné výsledky v různých programech nebo dokonce během různých spuštění stejného programu.Tímto způsobem je funkce type_info::before obdobou operátoru adresy (&).

Členská funkce type_info::name vrátí ukazatele const char* na řetězec zakončený hodnotou null představující název typu, který lze přečíst.Paměť, na kterou je odkazováno je uložena do mezipaměti a neměla by nikdy být odebrána přímo.

Členská funkce type_info::raw_name vrátí ukazatele const char* na řetězec zakončený hodnotou null představující upravený název typu objektu.Ve skutečnosti je název pro úsporu místa uložen v upravené podobě.Tato funkce je rychlejší než funkce type_info::name, protože není nutné rušit úpravu názvu.Řetězec vrácený funkcí type_info::raw_name je užitečný v operacích porovnávání, ale není čitelný.Pokud potřebujete řetězec, který lze přečíst, použijte namísto toho funkci type_info::name.

Informace o typu je pro polymorfní třídy vygenerována pouze tehdy, pokud je zadána možnost /GR (Povolit informace o typu modulu run-time) kompilátoru.

Viz také

Referenční dokumentace

Informace běhového typu