メインページ | モジュール | 名前空間一覧 | クラス階層 | 構成 | ファイル一覧 | 名前空間メンバ | 構成メンバ | ファイルメンバ | 関連ページ

クラス テンプレートtoppers::fixed_sized_new< Host, Pool, Allocator > の解説
[メモリアロケータ]

指定メモリプールを用いた new および delete 演算子 [詳細]

#include <toppers/allocator.hpp>

すべてのメンバ一覧

Public メンバ関数

std::new_handler set_new_handler (std::new_handler handler)
 new演算子に失敗した際の処理関数の設定


Static Public メンバ関数

void * operator new (std::size_t size) throw (std::bad_alloc)
 new演算子

void operator delete (void *p) throw ()
 delete演算子

template<typename Sync> void * operator new (std::size_t size, Sync sync) throw (std::bad_alloc)
 同期方法指定付きnew演算子

template<typename Sync> void operator delete (void *p, Sync) throw ()
 同期方法指定付きnew演算子に対応するdelete演算子

void * operator new (std::size_t size, const std::nothrow_t &nt) throw ()
 例外を投げないnew演算子

void operator delete (void *p, const std::nothrow_t &) throw ()
 例外を投げないnew演算子に対応するdelete演算子

template<typename Sync> void * operator new (std::size_t size, const std::nothrow_t &, Sync sync) throw ()
 例外を投げない同期方法指定付きnew演算子

template<typename Sync> void operator delete (void *p, const std::nothrow_t &, Sync) throw ()
 例外を投げない同期方法指定付きnew演算子に対応するdelete演算子


Protected メンバ関数

 ~fixed_sized_new ()
 デストラクタ


解説

template<class Host, class Pool, template< std::size_t, class > class Allocator = fixed_sized_allocator>
class toppers::fixed_sized_new< Host, Pool, Allocator >

  fixed_sized_new は、テンプレート引数Pool で指定したメモリプールを用いた new および delete 演算子を定義している。
  fixed_sized_new から public 継承することにより、そのクラスの new および delete 演算子をグローバルな new および delete 演算子と置き換えることができる。ただし、配列用の new および delete 演算子はデフォルトの ものが使用される。
  テンプレート引数Host には、variable_sized_new から派生させるクラスそのものを指定すること。 また、テンプレートテンプレート引数Allocator は、Host のオブジェクトサイズを指定して固定長メモリブロック を割り付けるためのヘルパーテンプレートであるが、ほとんどの場合はデフォルトのままでかまわない。


コンストラクタとデストラクタの解説

template<class Host, class Pool, template< std::size_t, class > class Allocator = fixed_sized_allocator>
toppers::fixed_sized_new< Host, Pool, Allocator >::~fixed_sized_new  )  [inline, protected]
 

fixed_sized_newのポインタを用いて派生クラスがdeleteされることがないよう protected属性とする。


メンバ関数の解説

template<class Host, class Pool, template< std::size_t, class > class Allocator = fixed_sized_allocator>
template<typename Sync>
void* toppers::fixed_sized_new< Host, Pool, Allocator >::operator new std::size_t  size,
Sync  sync
throw (std::bad_alloc) [inline, static]
 

引数:
sync 同期方法。forever、polling、およびタイムアウト時間を指定できる。