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

Class memory_resource

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 memory_resource

boost::container::pmr::memory_resource

Synopsis

// In header: <boost/container/pmr/memory_resource.hpp>

class memory_resource {
public:
  // construct/copy/destruct
  ~memory_resource();
  // public member functions
  void * allocate(std::size_t, std::size_t = max_align);
  void deallocate(void *, std::size_t, std::size_t = max_align);
  bool is_equal(const memory_resource &) const noexcept;
  // friend functions
  friend bool operator==(const memory_resource &, const memory_resource &) noexcept;
  friend bool operator!=(const memory_resource &, const memory_resource &) noexcept;
  // protected member functions
  virtual void * do_allocate(std::size_t, std::size_t) = 0;
  virtual void do_deallocate(void *, std::size_t, std::size_t) = 0;
  virtual bool do_is_equal(const memory_resource &) const = 0;
  // public data members
  static constexpr std::size_t max_align;
};

Description

Memory_resourceКласс представляет собой абстрактный интерфейс к неограниченному набору классов, инкапсулирующих ресурсы памяти.

memory_resource public construct/copy/destruct

  1. <
    ~memory_resource();
    >

    Эффекты: Уничтожает это<memory_resource>.

memory_resource public member functions

  1. <
    void*allocate(std::size_tbytes,std::size_talignment=max_align);
    >

    Эффекты: эквивалентно<return do_allocate(bytes, alignment);>

  2. <
    voiddeallocate(void*p,std::size_tbytes,
                   std::size_talignment=max_align);
    >

    Эффекты: эквивалентно<return do_deallocate(bytes, alignment);>

  3. <
    boolis_equal(constmemory_resource&other)constnoexcept;
    >

    Эффекты: эквивалентно<return return do_is_equal(other);>

memory_resource friend functions

  1. <
    friendbooloperator==(constmemory_resource&a,constmemory_resource&b)noexcept;
    >

    Возвращение:<&a == &b || a.is_equal(b)>

  2. <
    friendbooloperator!=(constmemory_resource&a,constmemory_resource&b)noexcept;
    >

    Возвращение:! (a == b).

memory_resource protected member functions

  1. <
    virtualvoid*do_allocate(std::size_tbytes,std::size_talignment)=0;
    >

    Требуется: Выравнивание должно быть силой двух.

    Возвращение: Полученный класс должен выполнять эту функцию для возврата указателя в выделенное хранилище размером не менее байтов. Возвращенное хранилище выровнено с указанным выравниванием, если такое выравнивание поддерживается; в противном случае оно выровнено с max_align.

    Бросает: Реализация производного класса должна предусматривать соответствующее исключение, если она не может выделить память с требуемым размером и выравниванием.

  2. <
    virtualvoid
    do_deallocate(void*p,std::size_tbytes,std::size_talignment)=0;
    >

    Требуется: p должен быть возвращен с предыдущего вызова на<allocate(bytes, alignment)>на ресурсе памяти, равном * этому, и хранилище на p еще не должно быть размещено.

    Эффекты: Полученный класс должен выполнять эту функцию для удаления выделенного хранилища.

    Бросает: Ничего.

  3. <
    virtualbooldo_is_equal(constmemory_resource&other)const=0;
    >

    Возвращение: Полученный класс должен реализовать эту функцию, чтобы вернуть истинное, если выделенная из этого память может быть распределена от другого и наоборот; в противном случае она вернется ложной.[Примечание: Наиболее распространенный тип других может не соответствовать этому типу. Для производного класса D типичная реализация этой функции вычисляет<dynamic_cast<const D*>(&other)>и не идет дальше (т.е. возвращает ложное), если она возвращает nullptr. - конец примечания]


PrevUpHomeNext

Статья Class memory_resource раздела 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 18:59:48/0.0067691802978516/0