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

Class template fast_pool_allocator

Boost , Boost.Pool , Header <boost/pool/poolfwd.hpp>

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 fast_pool_allocator

boost::fast_pool_allocator — A C++ Standard Library conforming allocator geared towards allocating single chunks.

Synopsis

// In header: <boost/pool/poolfwd.hpp>
template<typename T, 
         typename UserAllocator = default_user_allocator_new_delete, 
         typename Mutex = details::pool::default_mutex, 
         unsigned NextSize = 32, unsigned MaxSize = 0> 
class fast_pool_allocator {
public:
  // construct/copy/destruct
  fast_pool_allocator();
  template<typename U> 
    fast_pool_allocator(const fast_pool_allocator< U, UserAllocator, Mutex, NextSize, MaxSize > &);
  // public member functions
  void construct(const pointer, const value_type &);
  void destroy(const pointer);
  bool operator==(const fast_pool_allocator &) const;
  bool operator!=(const fast_pool_allocator &) const;
  // public static functions
  static pointer address(reference);
  static const_pointer address(const_reference);
  static size_type max_size();
  static pointer allocate(const size_type);
  static pointer allocate(const size_type, const void *);
  static pointer allocate();
  static void deallocate(const pointer, const size_type);
  static void deallocate(const pointer);
};

Description

В качестве шаблона классаpool_allocatorявляется более универсальным решением, направленным на эффективное обслуживание запросов на любое количество смежных кусков,fast_pool_allocatorтакже является решением общего назначения, но ориентировано на эффективное обслуживание запросов по одному куску за раз; оно будет работать для смежных кусков, но не так хорошо, как.pool_allocator.

Если вы серьезно обеспокоены производительностью, используйтеfast_pool_allocatorпри работе с контейнерами, такими какstd::list, и используйтеpool_allocatorпри работе с контейнерами, такими какstd::vector.

Параметры шаблона определяются следующим образом:

ТТип объекта для выделения/выделения.

UserAllocator. Определяет метод, который базовый пул будет использовать для выделения памяти из системы.Распределители пользователейдля получения подробной информации.

МутексПозволяет пользователю определить тип синхронизации, который будет использоваться на базовомsingleton_pool.

NextSizeЗначение этого параметра передается в базовый бассейн при его создании.

MaxSizeОграничение на максимальный размер.

[Note]Note

Базовыйsingleton_pool, используемый этим распределителем, конструирует экземпляр пула, которыйникогда не освобождается. Это означает, что память, выделенная распределителем, может по-прежнему использоваться после завершения main(), но может означать, что некоторые программы проверки памяти будут жаловаться на утечки.

fast_pool_allocator public construct/copy/destruct

  1. fast_pool_allocator;

    Обеспечивает построение базовогоsingleton_poolIFF экземпляр этого распределителя строится в ходе глобальной инициализации. См. билет No 2359 для полного объяснения по адресуhttp://svn.boost.org/trac/boost/ticket/2359.

  2. template<typenameU>
     fast_pool_allocator(constfast_pool_allocator<U,UserAllocator,Mutex,NextSize,MaxSize>&);

    Обеспечивает построение лежащего в основеsingleton_poolIFF экземпляра этого распределителя, построенного во время глобальной инициализации. Билет No 2359 для полного объяснения по адресуhttp://svn.boost.org/trac/boost/ticket/2359.

fast_pool_allocator public member functions

  1. voidbuildconstpointerptr,constvalue_type&t;
  2. voiddestroy(constpointerptr);

    Уничтожьте ptr с помощью деструктора.

  3. boolоператор==constfast_pool_allocator&]const;
  4. boolоператор!=constconstfast_pool_allocator&]const;

fast_pool_allocator public static functions

  1. статическийуказательадресссылкаr];
  2. статическийconst_pointerадресconst_reference;
  3. статическийразмер_типмаксимальный_размер;
  4. статическийуказательвыделяютконстразмер_типn];
  5. staticpointerallocate(constsize_typen,constvoid*const);

    Выделить память.

  6. staticpointerallocate();

    Выделить память.

  7. staticvoiddeallocate(constpointerptr,constsize_typen);

    Распределите память.

  8. статическийпустотныйделлокатконстуказательptr;

    деллокат/свободный


PrevUpHomeNext

Статья Class template fast_pool_allocator раздела Boost.Pool Header <boost/pool/poolfwd.hpp> может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Header <boost/pool/poolfwd.hpp> ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:48:25/0.0091080665588379/1