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

Class template intrusive_ptr

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

boost::interprocess::intrusive_ptr

Synopsis

// In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp>
template<typename T, typename VoidPointer> 
class intrusive_ptr {
public:
  // types
  typedef boost::intrusive::pointer_traits< VoidPointer >::template rebind_pointer< T >::type pointer;       // Provides the type of the internal stored pointer. 
  typedef T                                                                                   element_type;  // Provides the type of the stored pointer. 
  // construct/copy/destruct
  intrusive_ptr();
  intrusive_ptr(const pointer &, bool = true);
  intrusive_ptr(intrusive_ptr const &);
  template<typename U> intrusive_ptr(intrusive_ptr< U, VP > const &);
  intrusive_ptr & operator=(intrusive_ptr const &);
  template<typename U> 
    intrusive_ptr & operator=(intrusive_ptr< U, VP > const &);
  intrusive_ptr & operator=(pointer);
  ~intrusive_ptr();
  // public member functions
  pointer & get();
  const pointer & get() const;
  T & operator*() const;
  const pointer & operator->() const;
  pointer & operator->();
  operator unspecified_bool_type() const;
  bool operator!() const;
  void swap(intrusive_ptr &);
};

Description

Шаблон класса intrusive_ptr хранит указатель на объект с встроенным исходным счетом. intrusive_ptr параметризирован на T (тип объекта указал) и VoidPointer (типа указателя пустоты, который определяет тип указателя, который будет хранить intrusive_ptr). intrusive_ptr определяет класс с членом T*, тогда как intrusive_ptr определяет класс с офсетным членом_ptr. Остается на неквалифицированных призывах:

untrusive_ptr_add_ref(T* p); null intrusive_ptr_release(T* p);

(p!= 0)

Объект несет ответственность за самоуничтожение.

intrusive_ptr public construct/copy/destruct

  1. intrusive_ptr();

    Конструктор. Не бросает

  2. intrusive_ptr(const pointer & p, bool add_ref = true);

    Constructor. Копия указателя и если "p" не равна нулю, а "add_ref" - это настоящие звонки intrusive_ptr_add_ref(to_raw_pointer(p)). Не бросает

  3. intrusive_ptr(intrusive_ptr const & rhs);

    Copy конструктор. Копирует внутренний указатель и если "p" не означает нулевых вызовов intrusive_ptr_add_ref(to_raw_pointer(p)). Не бросает

  4. template<typename U> intrusive_ptr(intrusive_ptr< U, VP >const& rstruct.>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Копирует внутренний указатель и если "p" не означает нулевых вызовов intrusive_ptr_add_ref(to_raw_pointer(p)). Не бросает 

  5. intrusive_ptr & оператор=(intrusive_ptr const & rhs);

    Оператор назначения. Эквивалент intrusive_ptr(r).swap(*This). Не бросает

  6. template<typename U> intrusive_ptr & operator=(intrusive_ptr<UUVP><<>><>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>< Эквивалент intrusive_ptr(r).swap(*This). Не бросает 

  7. intrusive_ptr & оператор=(pointer rhs);

    Назначение от указателя. Эквивалент intrusive_ptr(r).swap(*This). Не бросает

  8. ~intrusive_ptr();

    Destructor. Если внутренний указатель не равен 0, звонит intrusive_ptr_release(to_raw_pointer(m_ptr)). Не бросает

intrusive_ptr public member functions

  1. pointer & get();

    Возвращает ссылку на внутренний указатель. Не бросает

  2. const pointer & get() const;

    Возвращает ссылку на внутренний указатель. Не бросает

  3. T & оператор*() const;

    Returns *get(). Не бросает

  4. const pointer & operator->() const;

    Returns *get(). Не бросает

  5. pointer & оператор->();

    Возвращения получают(). Не бросает

  6. оператор Неуказанные_bool_type() const;

    Конверсия на боле. Не бросает

  7. bool оператор!()const;

    Не оператор. Не бросает

  8. void swap(intrusive_ptr & rhs);

    Exchanges содержание двух умных указателей. Не бросает


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:26:40/0.0066680908203125/1