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

Class template resource_adaptor_imp

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

boost::container::pmr::resource_adaptor_imp

Synopsis

// In header: <boost/container/pmr/resource_adaptor.hpp>
template<typename Allocator> 
class resource_adaptor_imp : public boost::container::pmr::memory_resource {
public:
  // types
  typedef Allocator allocator_type;
  // construct/copy/destruct
  resource_adaptor_imp();
  resource_adaptor_imp(const resource_adaptor_imp &);
  resource_adaptor_imp(resource_adaptor_imp &&);
  explicit resource_adaptor_imp(const Allocator &);
  explicit resource_adaptor_imp(Allocator &&);
  resource_adaptor_imp & operator=(const resource_adaptor_imp &);
  resource_adaptor_imp & operator=(resource_adaptor_imp &&);
  // public member functions
  allocator_type & get_allocator();
  const allocator_type & get_allocator() const;
  // protected member functions
  virtual void * do_allocate(size_t, size_t);
  virtual void do_deallocate(void *, size_t, size_t);
  virtual bool do_is_equal(const memory_resource &) const noexcept;
};

Description

Пример resource_adaptor представляет собой адаптер, который обертывает интерфейс memory_resource вокруг Allocator. Чтобы ресурс_adaptor> и ресурс_adaptor> были одного и того же типа для любого шаблона распределителя X и типов T и U, ресурс_adaptor отображается как псевдоним для этого шаблона класса таким образом, что Allocator восстанавливается к типу значения char в каждой специализации шаблона класса. Требования к этому шаблону классов определены ниже. В дополнение к требованиям Allocator параметр resource_adaptor должен соответствовать следующим дополнительным требованиям:

resource_adaptor_imp public construct/copy/destruct

  1. resource_adaptor_imp();

    Effects: Default constructs m_alloc.

  2. resource_adaptor_imp(const resource_adaptor_imp & other);

    Effects: Copy constructs m_alloc.

  3. Effects: Переместить конструкции m_alloc.

    Effects: Move constructs m_alloc.

    [ORIG_END] -->
  4. explicit resource_adaptor_imp(const Allocator & a2);

    Effects: Initializes m_alloc with a2.

  5. explicit resource_adaptor_imp(Allocator && a2);

    Effects: Initializes m_alloc with a2.

  6. Effects: Копировать присваивает m_alloc.

    Effects: Copy assigns m_alloc.

    [ORIG_END] -->
  7. Effects: Переместить присваивает m_alloc.

    Effects: Move assigns m_alloc.

    [ORIG_END] -->

resource_adaptor_imp public member functions

  1. allocator_type & get_allocator();
    Effects: Returns m_alloc.
  2. const allocator_type & get_allocator() const;
    Effects: Returns m_alloc.

resource_adaptor_imp protected member functions

  1. Returns: Выделенная память, полученная путем вызова m_alloc.allocate. Размер и выравнивание распределенной памяти должны соответствовать требованиям для класса, полученного из memory_resource.

    Returns: Allocated memory obtained by calling m_alloc.allocate. The size and alignment of the allocated memory shall meet the requirements for a class derived from memory_resource.

    [ORIG_END] -->
  2. virtual void do_deallocate(void * p, size_t bytes, size_t alignment);

    Requires: p was previously allocated using A.allocate, where A == m_alloc, and not subsequently deallocated.

    Effects: Returns memory to the allocator using m_alloc.deallocate().

  3. virtual bool do_is_equal(const memory_resource & other) const noexcept;

    Let p be dynamic_cast<const resource_adaptor_imp*>(&other).

    Returns: false if p is null, otherwise the value of m_alloc == p->m_alloc.


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:04:09/0.0088388919830322/1