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

boost/python/type_id.hpp

Boost , Boost.Python Reference Manual , Chapter 7. Utility and Infrastructure

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

предоставляет типы и функции для идентификации типа среды выполнения, такие как<<typeinfo>>. Он существует в основном для работы с определенными ошибками компилятора и взаимодействиями, зависящими от платформы, с общими библиотеками.

<type_info>Идентифицирует тип. Как указано<std::type_info>(но в отличие от его реализации в некоторых компиляторах),<boost::python::type_info>никогда не представляет собой ссылки верхнего уровня или квалификацию cv (см. раздел 5.2.8 в стандарте C++). В отличие от<std::type_info>,<boost::python::type_info>экземпляры являются копируемыми, и сравнения всегда надежно работают через общие границы библиотеки.

namespace boost { namespace python
{
  class type_info : totally_ordered<type_info>
  {
  public:
    // constructor
    type_info(std::type_info const& = typeid(void));
    // comparisons
    bool operator<(type_info const& rhs) const;
    bool operator==(type_info const& rhs) const;
    // observers
    char const* name() const;
  };
}}
type_info(std::type_info const& = typeid(void));

Effects

6 объект, который идентифицирует тот же тип, что и его аргумент.

Rationale

Поскольку время от времени возникает необходимость в создании массива<type_info>объектов, приводится доброкачественный аргумент по умолчанию. Примечание: этот конструктор не исправляет несоответствие реализаций компилятора<typeid()>. См.<type_id>ниже.

bool operator<(type_info const &rhs) const;

Effects

В результате получается общий порядок<type_info>объектов.

bool operator==(type_info const &rhs) const;

Returns

<true>Два значения описывают один и тот же тип.

Note

Использование<totally_ordered<type_info>>в качестве частных операторов поставок базового класса<<=>,<>=>,<>>и<!=>

char const* name() const;

Returns

Результат вызова<name()>на аргумент, используемый для построения объекта.

std::ostream& operator<<(std::ostream&s, type_info const&x);

Effects

Написать описание типа, описанного в<x>в s.

Rationale

Не каждая реализация C++ обеспечивает действительно читаемую человеком строку<type_info::name()>, но для некоторых мы можем расшифровать строку и создать разумное представление.

Note

В некоторых несоответствующих реализациях C++ код на самом деле не так прост, как описано выше; семантика корректируется для работы в соответствии с реализацией C++.

template <class T> type_info type_id()

Returns

<type_info(typeid(T))>

Note

В некоторых несоответствующих реализациях C++ код на самом деле не так прост, как описано выше; семантика корректируется для работы в соответствии с реализацией C++.

Следующий пример, хотя и глупый, иллюстрирует, как можно использовать средство type_id.

#include <boost/python/type_id.hpp>
// Returns true iff the user passes an int argument
template <class T>
bool is_int(T x)
{
   using boost::python::type_id;
   return type_id<T>() == type_id<int>();
}

PrevUpHomeNext

Статья boost/python/type_id.hpp раздела Boost.Python Reference Manual Chapter 7. Utility and Infrastructure может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 7. Utility and Infrastructure ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:44:48/0.0069460868835449/0