Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class template type_index_facade

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Boost.TypeIndex Header Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class template type_index_facade

boost::typeindex::type_index_facade

Synopsis

// In header: <boost/type_index/type_index_facade.hpp>
template<typename Derived, typename TypeInfo> 
class type_index_facade {
public:
  // types
  typedef TypeInfo type_info_t;
  // public member functions
  const char * name() const noexcept;
  std::string pretty_name() const;
  bool equal(const Derived &) const noexcept;
  bool before(const Derived &) const noexcept;
  std::size_t hash_code() const noexcept;
  // protected member functions
  const char * raw_name() const noexcept;
  const type_info_t & type_info() const noexcept;
  // protected static functions
  template<typename T> static Derived type_id() noexcept;
  template<typename T> static Derived type_id_with_cvr() noexcept;
  template<typename T> static Derived type_id_runtime(const T &) noexcept;
};

Description

Этот класс заботится об операторах сравнения, хеш-функциях и операторах потока. Используйте этот класс в качестве общедоступного базового класса для определения новых классов типа.

Пример:

class stl_type_index: public type_index_facade<stl_type_index, std::type_info> 
{
public:
    typedef std::type_info type_info_t;
private:
    const type_info_t* data_;
public:
    stl_type_index(const type_info_t& data) noexcept
        : data_(&data)
    {}
// ...
};

[Note]Note

Рассмотрим защищенные методы. Они, а не, определенныевtype_index_facade. Защищенные членские функции raw_name()должно быть определено в производном классе. Все остальные методы являются обязательными.

Смотрите также:

«Создание пользовательского раздела type_index» для получения дополнительной информации о создании собственного type_index с использованиемtype_index_facade.

Template Parameters

  1. <
    typenameDerived
    >

    Класс, полученный из<type_index_facade>

    .
  2. <
    typenameTypeInfo
    >

    Класс, который будет использоваться в качестве базового класса типа_info.

type_index_facade public member functions

  1. <
    constchar*name()constnoexcept;
    >

    Преодолеть:Эта функцияможетбыть переопределена в производном классе.долженне бросать.

    Возвращение:

    Наименование типа. По умолчанию возвраты Производные::raw_name().

  2. std::stringpretty_name()const;

    Опровержение:Эта функцияможет быть переопределена в классе производных. Переопределения могут бросаться.

    Возвращение:

    Человеческое имя. По умолчанию возвращается Производное::name().

  3. boolequal(constDerived&rhs)constnoexcept;

    Преодолеть:Эта функцияможет быть переопределенав производном классе.долженне бросать.

    Возвращение:

    Правда, если два типа равны. По умолчанию сравнивает типы по raw_name().

  4. boolbefore(constDerived&rhs)constnoexcept;

    Оверрайд:Эта функцияможет быть переопределенав производном классе.долженне бросать.

    Возвращается:

    Истинно, если rhs больше этого. По умолчанию сравнивает типы по raw_name().

  5. std::size_thash_code()constnoexcept;

    Оверрайд:Эта функцияможетбыть переопределена в производном классе. Переопределениядолжныне бросать.

    [Note]Примечание

    должно быть включено, если используется эта функция.

    Возвращение:

    Хеш-код какого-то типа. По умолчанию типы хешей по сырому_name().

type_index_facade protected member functions

  1. constchar*raw_name()constnoexcept;

    Оверрайд:Эта функциядолжнабыть переопределена в производном классе.долженне бросать.

    Возвращение:

    Укажите на неуязвимое/сырое название.

  2. <
    consttype_info_t&type_info()constnoexcept;
    >

    Оверрайд:Эта функцияможетбыть переопределена в производном классе.долженне бросать.

    Возвращение:

    Ссылка на базовый низкий уровень type_info_t.

type_index_facade protected static functions

  1. <
    template<typenameT>staticDerivedtype_id()noexcept;
    >

    Это заводской метод, который используется для создания экземпляров производных классов. boost::typeindex::type_id() будет называться этим методом, если Derived имеет тот же тип, что и boost::typeindex::type_index.

    Оверрайд:Эта функцияможет быть переопределенаи обнародована в производном классе.долженне бросать.долженудалить конст, летучие && и & модификаторы из T.

    Параметры шаблонов:

    <T>

    Тип, для которого должен быть создан индекс типа_.

    Возврат:

    type_index для типа T.

  2. template<typenameT>staticDerivedtype_id_with_cvr()noexcept;

    Это заводской метод, который используется для создания экземпляров производных классов. boost::typeindex::type_id_with_cvr() будет называться этим методом, если Derived имеет тот же тип, что и boost::typeindex::type_index.

    Оверрайд:Эта функцияможетбыть переопределена и обнародована в производном классе.долженне бросать.долженнеудалить конст, летучие && и & модификаторы из T.

    Параметры шаблонов:

    T

    Тип, для которого должен быть создан индекс типа_.

Возврат:

type_index для типа T.

  • template<typenameT>
     staticDerivedtype_id_runtime(constT&variable)noexcept;

    Это заводской метод, который используется для создания экземпляров производных классов. boost::typeindex::type_id_runtime T&) будет называть этот метод, если Derived имеет тот же тип, что и boost::typeindex::type_index.

    Оверрайд:Эта функцияможетбыть переопределена и обнародована в производном классе.

    Параметры:

    variable

    Переменная, тип среды выполнения которой будет храниться в type_index.

    Возврат:

    type_index с переменным типом времени выполнения.


  • PrevUpHomeNext

    Статья Class template type_index_facade раздела The Boost C++ Libraries BoostBook Documentation Subset Boost.TypeIndex Header Reference может быть полезна для разработчиков на c++ и boost.




    Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



    :: Главная :: Boost.TypeIndex Header Reference ::


    реклама


    ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
    Top.Mail.Ru

    Время компиляции файла: 2024-08-30 11:47:00
    2025-07-05 00:47:58/0.026526927947998/1