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

配列へのポインタの参照カウントを管理し,どこからも参照されなくなったときにメモリを自動開放するポインタ [詳細]

#include <pointer.h>

mist::__shared_memory__::shared_base< T >を継承しています。

Public 型

typedef size_t size_type
 符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ
typedef ptrdiff_t difference_type
 符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ
typedef T value_type
 内部データ型.T と同じ
typedef T * pointer
 データ型のポインター型.data の場合,data * となる
typedef T & reference
 データ型の参照.data の場合,data & となる
typedef const T & const_reference
 データ型の const 参照.data の場合,const data & となる
typedef const T * const_pointer
 データ型の const ポインター型.data の場合,const data * となる

Public メソッド

 shared_array ()
 未管理のポインタで初期化
 shared_array (pointer p)
 管理するポインタを設定し,参照カウントを 1 増やす
 shared_array (const shared_array &p)
 他の共有メモリポインタを用いて初期化し,参照カウントを 1 増やす
 ~shared_array ()
 管理するポインタの参照カウントを1減らす
const shared_arrayoperator= (const shared_array &p)
 他の共有メモリポインタを代入する
reference operator* ()
 ポインタが指す内容への参照を返す
const_reference operator* () const
 ポインタが指す内容への参照を返す
pointer operator-> ()
 ポインタが指す内容へのアクセスを行う
const_pointer operator-> () const
 ポインタが指す内容へのアクセスを行う
reference operator[] (difference_type index)
 配列の要素へのアクセスを行う
const_reference operator[] (difference_type index) const
 配列の要素へのアクセスを行う
void reset ()
 管理しているポインタの参照カウントを減らす
bool operator== (const shared_array &p) const
 2つのポインタが同一かどうかを判定する
bool operator!= (const shared_array &p) const
 2つのポインタが等しくないどうかを判定する
bool operator< (const shared_array &p) const
 2つのポインタの < を判定する
bool operator<= (const shared_array &p) const
 2つのポインタの <= を判定する
bool operator> (const shared_array &p) const
 2つのポインタの > を判定する
bool operator>= (const shared_array &p) const
 2つのポインタの >= を判定する
bool operator== (const pointer &p) const
 2つのポインタが同一かどうかを判定する
bool operator!= (const pointer &p) const
 2つのポインタが等しくないどうかを判定する
bool operator< (const pointer &p) const
 2つのポインタの < を判定する
bool operator<= (const pointer &p) const
 2つのポインタの <= を判定する
bool operator> (const pointer &p) const
 2つのポインタの > を判定する
bool operator>= (const pointer &p) const
 2つのポインタの >= を判定する

説明

template<class T>
class mist::shared_array< T >

配列へのポインタの参照カウントを管理し,どこからも参照されなくなったときにメモリを自動開放するポインタ

対象が配列ということを除けば,shared_ptr と同じ

注意
配列に対してしか利用できない
循環参照が発生した場合は,正しく管理できない
ポインタの使用例
{
{
mist::shared_ptr< std::string > b = new std::string[ 2 ];
a = b; // a が b と同じメモリ領域を参照するようにし,参照カウントを増やす
a[ 0 ] = a[ 1 ] = "test";
} // <- ここでは b に割り当てたメモリ領域の参照カウントが減るが,a が同じ領域を参照しているので,メモリ領域は開放されない
...
} // <- ここで a に割り当てたメモリ領域がどこからも参照されなくなるため,メモリ領域が自動的に開放される

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

template<class T>
mist::shared_array< T >::~shared_array ( )
inline

管理するポインタの参照カウントを1減らす

どこからも参照されなくなったらメモリを開放する

関数

template<class T>
const shared_array& mist::shared_array< T >::operator= ( const shared_array< T > &  p)
inline

他の共有メモリポインタを代入する

注意
すでに管理しているポインタがある場合は,参照カウントを1減らす
その際に,どこからも参照されなくなったらメモリを開放する
template<class T>
void mist::shared_array< T >::reset ( )
inline

管理しているポインタの参照カウントを減らす

注意
どこからも参照されなくなったらメモリを開放する

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

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