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

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

指定メモリプールを用いた 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 sync) throw ()
 例外を投げない同期方法指定付きnew演算子に対応するdelete演算子

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 &nt) throw ()
 例外を投げないnew演算子に対応するdelete演算子(配列用)

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

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


Protected メンバ関数

 ~variable_sized_new ()
 デストラクタ


解説

template<class Host, class Pool>
class toppers::variable_sized_new< Host, Pool >

  variable_sized_new は、テンプレート引数Pool で指定した可変長メモリプールを用いた new および delete 演算子を定義している。
  variable_sized_new から public 継承することにより、そのクラスの new および delete 演算子をグローバルな new および delete 演算子と置き換えることができる。
  テンプレート引数Host には、variable_sized_new から派生させるクラスそのものを指定すること。


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

template<class Host, class Pool>
toppers::variable_sized_new< Host, Pool >::~variable_sized_new  )  [inline, protected]
 

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


メンバ関数の解説

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

引数:
size 割り付けるメモリブロックのサイズ(バイト数)
sync 同期方法。forever、polling、およびタイムアウト時間を指定できる。