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

Struct template pointer_traits

Boost , The Boost C++ Libraries BoostBook Documentation Subset , 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

Struct template pointer_traits

boost::intrusive::pointer_traits

Synopsis

// In header: <boost/intrusive/pointer_traits.hpp>
template<typename Ptr> 
struct pointer_traits {
  // types
  typedef Ptr              pointer;        
  typedef unspecified_type element_type;   
  typedef unspecified_type difference_type;
  typedef unspecified      rebind;         
  typedef unspecified_type reference;      
  // public static functions
  static pointer pointer_to(reference);
  template<typename UPtr> static pointer static_cast_from(const UPtr &);
  template<typename UPtr> static pointer const_cast_from(const UPtr &);
  template<typename UPtr> static pointer dynamic_cast_from(const UPtr &);
};

Description

pointer_traits- реализация класса C++11 std::pointer_traits с некоторыми расширениями, такими как кастинги.

Pointer_traitsобеспечивает единый интерфейс для определенных атрибутов указателей типа.

Примечание: При определении пользовательского семейства указателей или ссылок, которые будут использоваться с библиотекой BI, убедитесь, что общедоступные статические функции преобразования, доступные через интерфейс<pointer_traits>(<*_cast_from>и<pointer_to>), могут правильно конвертировать между типами Const и nonconst.без использования неявных призывов конструктора. Предполагается, что эти преобразования будут реализованы в виде шаблонов функций, где аргумент шаблона является типом объекта, из которого преобразуется.

pointer_traits public types

  1. typedefPtrуказатель;

    Тип указателя, запрашиваемый этимpointer_traitsinstantiation

  2. typedefunspecified_typeelement_type;

    Ptr::element_type, если такой тип существует; в противном случае T, если Ptr является шаблоном класса, представляет собой форму SomePointer, где Args является нулевым или более аргументами типа; в противном случае специализация плохо сформирована.

  3. typedefunspecified_typedifference_type;

    Ptr::difference_type, если такой тип существует; в противном случае std::ptrdiff_t.

  4. typedefunspecifiedrebind;

    Ptr::rebind, если такой тип существует; в противном случае, SomePointer, если Ptr представляет собой шаблон классовой инстанциации формы SomePointer, где Args является аргументом нулевого или более типа; в противном случае, инстанциация rebind плохо сформирована.

    <
    typenamerebind_pointer<U>::type
    >
  5. typedefunspecified_typereference;

    Ptr::ference if such type exist (non-standard extension); в противном случае element_type &

pointer_traits public static functions

  1. <
    staticpointerpointer_to(referencer);
    >

    Замечание: Если элемент_тип (возможно, cv-квалифицированный) недействителен, r-тип не указан; в противном случае это элемент_тип &.

    Возвращение: Предпочтительный указатель на r, полученный путем вызова Ptr::pointer_to(reference). Нестандартное расширение: Если такой функции не существует, возвращает указатель (адрес(r));

    Примечание: Для несоответствующих компиляторов проверяется только наличие функции-члена<pointer_to>.

  2. <
    template<typenameUPtr>staticpointerstatic_cast_from(constUPtr&uptr);
    >

    Замечание: Нестандартное расширение.

    Возврат: Предпочтительный указатель на r, полученный путем вызова функции статического шаблона Ptr::static_cast_from(UPpr/const UPpr &). Если такой функции не существует, возвращает указатель_to(static_cast(*uptr))

    Примечание: Для несоответствующих компиляторов проверяется только наличие функции-члена<static_cast_from>.

  3. <
    template<typenameUPtr>staticpointerconst_cast_from(constUPtr&uptr);
    >

    Замечание: Нестандартное расширение.

    Возврат: Предпочтительный указатель на r, полученный путем вызова функции статического шаблона Ptr::const_cast_from(UPpr/const UPpr &). Если такой функции не существует, возвращает указатель_to(const_cast(*uptr))

    Примечание: Для несоответствующих компиляторов проверяется только наличие функции-члена<const_cast_from>.

  4. <
    template<typenameUPtr>staticpointerdynamic_cast_from(constUPtr&uptr);
    >

    Замечание: Нестандартное расширение.

    Возвращение: Предпочтительный указатель на r, полученный путем вызова функции статического шаблона Ptr::dynamic_cast_from(UPpr/const UPpr&). Если такой функции не существует, возвращает указатель_to(dynamic_cast>(&*uptr)]

    Примечание: Для несоответствующих компиляторов проверяется только наличие функции-члена<dynamic_cast_from>.


PrevUpHomeNext

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




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



:: Главная :: Reference ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 23:30:24/0.0089268684387207/1