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

Class template allocator

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

Class template allocator

boost::mpi::allocator — Standard Library-compliant allocator for the MPI-2 memory allocation routines.

Synopsis

// In header: <boost/mpi/allocator.hpp>
template<typename T> 
class allocator {
public:
  // types
  typedef std::size_t    size_type;        // Holds the size of objects. 
  typedef std::ptrdiff_t difference_type;  // Holds the number of elements between two pointers. 
  typedef T *            pointer;          // A pointer to an object of type T. 
  typedef const T *      const_pointer;    // A pointer to a constant object of type T. 
  typedef T &            reference;        // A reference to an object of type T. 
  typedef const T &      const_reference;  // A reference to a constant object of type T. 
  typedef T              value_type;       // The type of memory allocated by this allocator. 
  // member classes/structs/unions
  // Retrieve the type of an allocator similar to this allocator but for a
  // different value type.
  template<typename U> 
  struct rebind {
    // types
    typedef allocator< U > other;
  };
  // construct/copy/destruct
  allocator();
  allocator(const allocator &);
  template<typename U> allocator(const allocator< U > &);
  ~allocator();
  // public member functions
  pointer address(reference) const;
  const_pointer address(const_reference) const;
  pointer allocate(size_type, allocator< void >::const_pointer = 0);
  void deallocate(pointer, size_type);
  size_type max_size() const;
  void construct(pointer, const T &);
  void destroy(pointer);
};

Description

Этот распределитель обеспечивает стандартный интерфейс C++ для<MPI_Alloc_mem>и<MPI_Free_mem>процедур MPI-2. Он предназначен для использования с контейнерами в Стандартной библиотеке (в частности,<vector>) в случаях, когда содержимое контейнера будет напрямую передаваться через MPI. Этот распределитель также используется внутри библиотеки для буферов символов, которые будут использоваться при передаче данных.

Шаблон класса<allocator>обеспечивает распределение памяти MPI только тогда, когда базовая реализация MPI либо совместима с MPI-2, либо, как известно, обеспечивает<MPI_Alloc_mem>и<MPI_Free_mem>в качестве расширений. Когда процедуры распределения памяти MPI недоступны,<allocator>вводится непосредственно из пространства имен<std>, так что стандартные распределители используются повсюду. Макрос<BOOST_MPI_HAS_MEMORY_ALLOCATION>будет определен, когда будут доступны средства распределения памяти MPI-2.

allocator public construct/copy/destruct

  1. <
    allocator();
    >

    По умолчанию построить распределитель.

  2. <
    allocator(constallocator&);
    >

    Копи-конструкция распределителя.

  3. <
    template<typenameU>allocator(constallocator<U>&);
    >

    Копи-конструкция распределителя из другого распределителя для другого типа значений.

  4. <
    ~allocator();
    >

    Уничтожьте распределителя.

allocator public member functions

  1. <
    pointeraddress(referencex)const;
    >

    Возвращает адрес объекта<x>

    .
  2. <
    const_pointeraddress(const_referencex)const;
    >

    Возвращает адрес объекта<x>

    .
  3. <
    pointerallocate(size_typen,allocator<void>::const_pointer=0);
    >

    Выделите достаточно памяти для<n>элементов типа<T>.

    Параметры:

    Количество элементов, для которых должна быть выделена память.

Возвращается:

указатель на вновь выделенную память

  • <
    voiddeallocate(pointerp,size_type);
    >

    Выделить память, на которую ссылается указатель<p>.

    [

    Параметры:

    <p>

    [
    [[] [<
    allocator();
    ><
    allocator();
    ><
    allocator();
    >

    Указатель, память которого должна быть расставлена. Этот указатель должен быть возвращен из функции<allocate()>и еще не освобожден.

  • 141

    Возвращает максимальное количество элементов, которые могут быть выделены<allocate()>.

  • <
    voidconstruct(pointerp,constT&val);
    >

    Постройте копию<val>в месте, указанном<p>

    .
  • <
    voiddestroy(pointerp);
    >

    Уничтожьте объект, на который ссылается<p>

    .
  • Specializations


    PrevUpHomeNext

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




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



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


    реклама


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

    Время компиляции файла: 2024-08-30 11:47:00
    2025-07-05 02:28:08/0.0023758411407471/0