SophiaFramework UNIVERSE 5.3 |
SFXBrewPointer クラスは、 参照カウントオブジェクトクラスに対して、参照カウントを自動管理する機能を提供します。
コンストラクタ/デストラクタ |
---|
SFXBrewPointer( Void ) SFXBrewPointer クラスのコンストラクタです。
|
SFXBrewPointer(
SFXBrewPointer< M > const & param
) SFXBrewPointer クラスのコンストラクタです。
|
SFXBrewPointer(
SFXBrewPointer< T > const & param
) SFXBrewPointer クラスのコンストラクタです。
|
SFXBrewPointer(
T * pointer
, Bool increment = true
) SFXBrewPointer クラスのコンストラクタです。
|
グローバル関数 | |
---|---|
SFXBrewPointer< T > |
const_pointer_cast(
SFXBrewPointer< M > const & param
) SFXBrewPointer 同士で const_cast を行います。
|
SFXBrewPointer< T > |
reinterpret_pointer_cast(
SFXBrewPointer< M > const & param
) SFXBrewPointer 同士で reinterpret_cast を行います。
|
SFXBrewPointer< T > |
static_pointer_cast(
SFXBrewPointer< M > const & param
) SFXBrewPointer 同士で static_cast を行います。
|
Bool |
operator==(
SFXBrewPointer< T > const & left
, SFXBrewPointer< M > const & right
) == の関係を判定します。
|
Bool |
operator==(
SFXBrewPointer< T > const & left
, SFBBaseConstPtr right
) == の関係を判定します。
|
Bool |
operator==(
SFBBaseConstPtr left
, SFXBrewPointer< T > const & right
) == の関係を判定します。
|
T & |
operator*( Void ) 保持しているインスタンスを取得します。
|
Bool |
operator!=(
SFXBrewPointer< T > const & left
, SFXBrewPointer< M > const & right
) != の関係を判定します。
|
Bool |
operator!=(
SFXBrewPointer< T > const & left
, SFBBaseConstPtr right
) != の関係を判定します。
|
Bool |
operator!=(
SFBBaseConstPtr left
, SFXBrewPointer< T > const & right
) != の関係を判定します。
|
[ public, explicit ] SFXBrewPointer(Void);
[ public ] SFXBrewPointer( SFXBrewPointer< M > const & param // コピーする SFXBrewPointer のリファレンス );
[ public ] SFXBrewPointer( SFXBrewPointer< T > const & param // コピーする SFXBrewPointer のリファレンス );
[ public, explicit ] SFXBrewPointer( T * pointer // 格納するインスタンスのポインタ Bool increment = true // 参照カウンタを増加させるかどうかを指定する );
このコンストラクタは、 指定されたインスタンスを設定します。
注意 | |
---|---|
引数が SFXBrewPointer インスタンスの場合は、コピーされます。 デフォルトでは、 設定するインスタンスの参照カウンタはインクリメントされます。 |
[ public ] Void Attach( T * pointer // 解放責任を譲るインスタンスのポインタ );
この関数は、指定されたインスタンスの解放責任を受けます。
注意 | |
---|---|
SFXBrewPointer クラスが解放責任を受けると、 SFXBrewPointer クラスがインスタンスを管理するようになり、 参照カウントの自動管理が行われます。 |
Attach 関数は
SFXBrewPointer::Set(address, false);
を実行するのと同じです。
[ public ] T * Detach(Void);
SFXBrewPointer クラスが内部に保持しているインスタンス。
この関数は、 SFXBrewPointer クラスが内部に保持しているインスタンスの解放責任を譲ります。
注意 | |
---|---|
SFXBrewPointer クラスは内部で保持していたインスタンスを管理しなくなり、 参照カウントの自動管理が行われなくなります。 |
[ public, static ] SFXBrewPointer< T > const & EmptyInstance(Void);
null を表す SFXBrewPointer インスタンスのリファレンス。
この関数は、 null を表す SFXBrewPointer インスタンスを取得します。
注意 | |
---|---|
この関数を利用すれば、 null を表す SFXBrewPointer インスタンスの const 参照を返すことができます。 |
この関数の内部実装は以下の通りです。
template <typename T> /*public static */inline SFXBrewPointer<T> const& SFXBrewPointer<T>::EmptyInstance(Void) { return static_cast<SFXBrewPointer<T> const&>(SFABrewPointer::EmptyInstance()); }// SFXBrewPointer<T>::EmptyInstance // /*protected static */SFABrewPointerConstRef SFABrewPointer::EmptyInstance(Void) { static UInt64Const result[cluster64of(SFABrewPointer)] = { 0 }; return *reinterpret_cast<SFABrewPointerConstPtr>(result); }// SFABrewPointer::EmptyInstance //
cluster64of マクロ | |
---|---|
cluster64of マクロは、 8 バイト境界にアラインしたときに 8 バイトのクラスターがいくつ必要になるかを計算するマクロです。 |
[ public, const ] T * Get(Void);
保持しているインスタンスのポインタ。
この関数は、 保持しているインスタンスのポインタを取得します。
[ public ] Void Release(Void);
この関数は、 内部に保持しているインスタンスを解放します。
注意 | |
---|---|
SFXBrewPointer クラスが内部に保持しているインスタンスの参照カウンタをデクリメントし、 インスタンスの管理をしなくなります。 |
[ public ] Void Set( SFXBrewPointer< M > const & param // 設定する SFXBrewPointer のリファレンス );
[ public ] Void Set( SFXBrewPointer< T > const & param // 設定する SFXBrewPointer のリファレンス );
[ public ] Void Set( T * pointer // 格納するインスタンスのポインタ Bool increment = true // 参照カウンタを増加させるかどうか );
この関数は、 指定されたインスタンスを設定します。
注意 | |
---|---|
旧いインスタンスの参照カウンタをデクリメントしてから、 新しいインスタンスのポインタを設定します。 デフォルトでは、 新しいインスタンスの参照カウンタはインクリメントされます。 |
SFXBrewPointer< T > const_pointer_cast( SFXBrewPointer< M > const & param // キャストするポインタ );
この関数は、 SFXBrewPointer 同士で const_cast を行います。
注意 | |
---|---|
SFXBrewPointer 同士の const_cast は、 const_pointer_cast 関数を使用して行います。 |
SFXBrewPointer< T > reinterpret_pointer_cast( SFXBrewPointer< M > const & param // キャストするポインタ );
この関数は、 SFXBrewPointer 同士で reinterpret_cast を行います。
注意 | |
---|---|
SFXBrewPointer 同士の reinterpret_cast は、 reinterpret_pointer_cast 関数を使用して行います。 |
SFXBrewPointer< T > static_pointer_cast( SFXBrewPointer< M > const & param // キャストするポインタ );
この関数は、 SFXBrewPointer 同士で static_cast を行います。
注意 | |
---|---|
SFXBrewPointer 同士の static_cast は、 static_pointer_cast 関数を使用して行います。 |
[ public, const ] T * operator->(Void);
保持しているインスタンスのポインタ。
このオペレータは、 保持しているインスタンスのメンバにアクセスします。
-> オペレータのオーバーロード | |
---|---|
オーバーロードされた -> オペレータでは、 戻り値に対して事前定義された -> オペレータが更に作用されます。 SFXBrewPointer::Get 関数は保持しているインスタンスのポインタを返すだけですが、 SFXBrewPointer::operator-> オペレータは保持しているインスタンスのポインタを取得し、 更に事前定義された -> オペレータを呼び出し、 保持しているインスタンスのメンバにアクセスします。 |
[ public ] SFXBrewPointer< T > & operator=( SFXBrewPointer< M > const & param // 代入する SFXBrewPointer のリファレンス );
[ public ] SFXBrewPointer< T > & operator=( SFXBrewPointer< T > const & param // 代入する SFXBrewPointer のリファレンス );
[ public, friend ] Bool operator==( SFXBrewPointer< T > const & left // 比較する SFXBrewPointer のリファレンス SFXBrewPointer< M > const & right // 比較する SFXBrewPointer のリファレンス );
[ public, friend ] Bool operator==( SFXBrewPointer< T > const & left // 比較する SFXBrewPointer のリファレンス SFBBaseConstPtr right // 比較する SFBBase のポインタ );
[ public, friend ] Bool operator==( SFBBaseConstPtr left // 比較する SFBBase のポインタ SFXBrewPointer< T > const & right // 比較する SFXBrewPointer のリファレンス );
このオペレータは、 == の関係を判定します。
[ const ] T & operator*(Void);
保持しているインスタンス。
このオペレータは、 保持しているインスタンスを取得します。
[ public, friend ] Bool operator!=( SFXBrewPointer< T > const & left // 比較する SFXBrewPointer のリファレンス SFXBrewPointer< M > const & right // 比較する SFXBrewPointer のリファレンス );
[ public, friend ] Bool operator!=( SFXBrewPointer< T > const & left // 比較する SFXBrewPointer のリファレンス SFBBaseConstPtr right // 比較する SFBBase のポインタ );
[ public, friend ] Bool operator!=( SFBBaseConstPtr left // 比較する SFBBase のポインタ SFXBrewPointer< T > const & right // 比較する SFXBrewPointer のリファレンス );
このオペレータは、 == の関係を判定します。
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |