- メインページ
- モジュール
- ネームスペース
- データ構造
- ファイル

- データ構造
- データ構造索引
- クラス階層
- データフィールド

Public 型 | Public メソッド
クラス テンプレート mist::mist_allocator< T, Allocator >

MIST内部でSTLのアロケータを効果的に利用するための仕組み [詳細]

`#include <mist_alloc.h>`

Allocatorを継承しています。

## Public 型
typedef Allocator | base
| MISTコンテナが利用するアロケータ型
typedef Allocator::reference | reference
| MISTのコンテナ内に格納するデータ型の参照．mist::array< data > の場合，data & となる
typedef Allocator::const_reference | const_reference
| MISTのコンテナ内に格納するデータ型の const 参照．mist::array< data > の場合，const data & となる
typedef Allocator::value_type | value_type
| MISTのコンテナ内に格納するデータ型．mist::array< data > の data と同じ
typedef Allocator::size_type | size_type
| 符号なしの整数を表す型．コンテナ内の要素数や，各要素を指定するときなどに利用し，内部的には size_t 型と同じ
typedef Allocator::difference_type | difference_type
| 符号付きの整数を表す型．コンテナ内の要素数や，各要素を指定するときなどに利用し，内部的には ptrdiff_t 型と同じ
typedef Allocator::pointer | pointer
| MISTのコンテナ内に格納するデータ型のポインター型．mist::array< data > の場合，data * となる
typedef Allocator::const_pointer | const_pointer
| MISTのコンテナ内に格納するデータ型の const ポインター型．mist::array< data > の場合，const data * となる

## Public メソッド
pointer | allocate_objects (size_type num)
| num 個のオブジェクトのメモリを確保し初期化を行う（組み込み型かどうかで内部の実装を分岐）
pointer | allocate_objects (size_type num, const_reference obj)
| num 個のオブジェクトのメモリを確保し obj を用いて初期化を行う（組み込み型かどうかで内部の実装を分岐）
pointer | allocate_objects (const_pointer s, const_pointer e)
| num 個のオブジェクトを確保し，ポインタで囲まれた間のデータで初期化する(組み込み型のデータの場合は memcpy を利用する)
void | deallocate_objects (pointer ptr, size_type num)
| num 個のオブジェクトのメモリを開放し，デストラクタを呼び出す（組み込み型の場合はデストラクタは呼ばない）
pointer | copy_objects (const_pointer s, const_pointer e, pointer x) const
| ポインタ s から e までの間のデータを x にコピーする
pointer | copy_objects (const_pointer ptr, size_type num, pointer to) const
| ポインタ ptr から num 個のデータを to にコピーする
void | fill_objects (pointer ptr, size_type num, const_reference obj) const
| ポインタ ptr から num 個のデータにobjを代入する
void | fill_objects (pointer ptr, size_type num) const
| ポインタ ptr から num 個のデータに初期値を代入する
pointer | trim_objects (pointer ptr, size_type num, size_type dest_num)
| ptr から始まり num 個存在するオブジェクトを dest_num 個まで縮め，全ての要素をデフォルトの値で初期化する
pointer | trim_objects (pointer ptr, size_type num, size_type dest_num, const_reference obj)
| ptr から始まり num 個存在するオブジェクトを dest_num 個まで縮め，全ての要素を値 obj で初期化する
size_type | max_size () const
| 使用しているアロケータが確保可能なメモリの最大値を返す
bool | is_memory_shared () const
| 外部で割り当てられたメモリ領域を使用しているかどうか
const Allocator & | operator= (const Allocator &alloc)
| 他のアロケータを代入する
const mist_allocator & | operator= (const mist_allocator &alloc)
| 他のアロケータを代入する
| mist_allocator ()
| デフォルトコンストラクタ
| mist_allocator (pointer ptr, size_type mem_shared)
| デフォルトコンストラクタ
| mist_allocator (const Allocator &alloc)
| 他のアロケータを用いて初期化する
| mist_allocator (const mist_allocator &alloc)
| 他のアロケータを用いて初期化する

## 説明

### template<class T, class Allocator>
class mist::mist_allocator< T, Allocator >

MIST内部でSTLのアロケータを効果的に利用するための仕組み

データの型によって，メモリ操作を区別し高速化を図っている

引数

  T | … データ型
  Allocator | … アロケータタイプ

## コンストラクタとデストラクタ

template<class T, class Allocator>

mist::mist_allocator< T, Allocator >::mist_allocator | ( | pointer | ptr,
|  | size_type | mem_shared
| ) |  |
| inline

デフォルトコンストラクタ

注意
  外部で割り当てたメモリ領域を利用する場合

引数

  [in] | ptr | … 外部メモリの先頭のポインタ
  [in] | mem_shared | … 外部メモリに割り当てたメモリ量

## 関数

template<class T, class Allocator>

pointer mist::mist_allocator< T, Allocator >::trim_objects | ( | pointer | ptr,
|  | size_type | num,
|  | size_type | dest_num
| ) |  |
| inline

ptr から始まり num 個存在するオブジェクトを dest_num 個まで縮め，全ての要素をデフォルトの値で初期化する

注意
  MSVCの場合は，メモリ領域のトリム操作が正しく動作しないため，メモリの再確保を行う

template<class T, class Allocator>

pointer mist::mist_allocator< T, Allocator >::trim_objects | ( | pointer | ptr,
|  | size_type | num,
|  | size_type | dest_num,
|  | const_reference | obj
| ) |  |
| inline

ptr から始まり num 個存在するオブジェクトを dest_num 個まで縮め，全ての要素を値 obj で初期化する

注意
  MSVCの場合は，メモリ領域のトリム操作が正しく動作しないため，メモリの再確保を行う

このクラスの説明は次のファイルから生成されました:

- mist_alloc.h