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_allocatoroperator= (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の場合は,メモリ領域のトリム操作が正しく動作しないため,メモリの再確保を行う

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

Generated on Wed Nov 12 2014 19:44:28 for MIST by doxygen 1.8.1.2