前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXRefObjectPointer
参照カウントオブジェクトクラス用のスマートポインタークラス(テンプレートクラス)です。
#include <SFXRefObjectPointer.h.hpp>
class SFXRefObjectPointer;
SFMTYPEDEFCLASS(SFXRefObjectPointer)
        

継承図

SFXRefObjectPointer クラスの継承図

協調図

SFXRefObjectPointer クラスの協調図

解説

SFXRefObjectPointer クラスは、 参照カウントオブジェクトクラスに対して、参照カウントを自動管理する機能を提供します。

内部実装

SFXRefObjectPointer クラスの内部実装は、以下の通りです。

#include <SFXGeneral/SFXEnvironment.h.hpp>
#include <SFXPointer/SFARefObjectPointer.h.hpp>

template <typename T>
class SFXRefObjectPointer : public SFARefObjectPointer {
    public:
        explicit                                SFXRefObjectPointer             (Void);

        template <typename M>
        inline                                  SFXRefObjectPointer             (SFXRefObjectPointer<M> const& param) : SFARefObjectPointer(param)
                {
                    SFMCONCEPTFUNCTIONTWO(concept_convertible, M*, T*)
                    SFMCONCEPTFUNCTIONTWO(concept_convertible, M*, SFORefObjectPtr)
                    SFMCONCEPTFUNCTIONTWO(concept_static_castable, SFORefObjectPtr, M*)
                }// SFXRefObjectPointer //

                                                SFXRefObjectPointer             (SFXRefObjectPointer<T> const& param);
        explicit                                SFXRefObjectPointer             (T* pointer, Bool retain = true);
                #if 0
                                                ~SFXRefObjectPointer            (Void);
                #endif

        template <typename M>
        inline  SFXRefObjectPointer<T>&       operator=                         (SFXRefObjectPointer<M> const& param)
                {
                    SFMCONCEPTFUNCTIONTWO(concept_convertible, M*, T*)
                    return static_cast<SFXRefObjectPointer<T>&>(SFARefObjectPointer::operator=(param));
                }// operator= //

                SFXRefObjectPointer<T>&       operator=                         (SFXRefObjectPointer<T> const& param);
                T&                              operator*                       (Void) const;
                T*                              operator->                      (Void) const;

        template <typename M>
        inline  Void                            Set                             (SFXRefObjectPointer<M> const& param)
                {
                    SFMCONCEPTFUNCTIONTWO(concept_convertible, M*, T*)
                    SFARefObjectPointer::Set(param);
                    return;
                }// Set //

                Void                            Set                             (SFXRefObjectPointer<T> const& param);
                Void                            Set                             (T* pointer, Bool retain = true);
                T*                              Get                             (Void) const;
                Void                            Attach                          (T* pointer);
                T*                              Detach                          (Void);
                Void                            Release                         (Void);
        static  SFXRefObjectPointer<T> const&   EmptyInstance                   (Void);
                #if defined TARGET_COMPILER_MSVCPP
    private:
                SFXRefObjectPointer<T>&       operator=                         (VoidConstPtr);
                #endif
};

template <typename T, typename M>
extern  SFXRefObjectPointer<T>                reinterpret_pointer_cast          (SFXRefObjectPointer<M> const& param);
template <typename T, typename M>
extern  SFXRefObjectPointer<T>                static_pointer_cast               (SFXRefObjectPointer<M> const& param);
#if 0
template <typename T, typename M>
extern  SFXRefObjectPointer<T>                dynamic_pointer_cast              (SFXRefObjectPointer<M> const& param);
#endif
template <typename T, typename M>
extern  SFXRefObjectPointer<T>                const_pointer_cast                (SFXRefObjectPointer<M> const& param);
template <typename T, typename M>
extern  Bool                                    operator==                      (SFXRefObjectPointer<T> const& left, SFXRefObjectPointer<M> const& right);
template <typename T>
extern  Bool                                    operator==                      (SFXRefObjectPointer<T> const& left, SFORefObjectConstPtr right);
template <typename T>
extern  Bool                                    operator==                      (SFORefObjectConstPtr left, SFXRefObjectPointer<T> const& right);
template <typename T, typename M>
extern  Bool                                    operator!=                      (SFXRefObjectPointer<T> const& left, SFXRefObjectPointer<M> const& right);
template <typename T>
extern  Bool                                    operator!=                      (SFXRefObjectPointer<T> const& left, SFORefObjectConstPtr right);
template <typename T>
extern  Bool                                    operator!=                      (SFORefObjectConstPtr left, SFXRefObjectPointer<T> const& right);

template <typename T>
/*public */inline SFXRefObjectPointer<T>::SFXRefObjectPointer(Void) : SFARefObjectPointer()
{
    SFMCONCEPTFUNCTIONTWO(concept_convertible, T*, SFORefObjectPtr)
    SFMCONCEPTFUNCTIONTWO(concept_static_castable, SFORefObjectPtr, T*)
}// SFXRefObjectPointer<T>::SFXRefObjectPointer //

template <typename T>
/*public */inline SFXRefObjectPointer<T>::SFXRefObjectPointer(SFXRefObjectPointer<T> const& param) : SFARefObjectPointer(param)
{
    SFMCONCEPTFUNCTIONTWO(concept_convertible, T*, SFORefObjectPtr)
    SFMCONCEPTFUNCTIONTWO(concept_static_castable, SFORefObjectPtr, T*)
}// SFXRefObjectPointer<T>::SFXRefObjectPointer //

template <typename T>
/*public */inline SFXRefObjectPointer<T>::SFXRefObjectPointer(T* pointer, Bool retain) : SFARefObjectPointer(pointer, retain)
{
    SFMCONCEPTFUNCTIONTWO(concept_convertible, T*, SFORefObjectPtr)
    SFMCONCEPTFUNCTIONTWO(concept_static_castable, SFORefObjectPtr, T*)
}// SFXRefObjectPointer<T>::SFXRefObjectPointer //

template <typename T>
/*public */inline SFXRefObjectPointer<T>& SFXRefObjectPointer<T>::operator=(SFXRefObjectPointer<T> const& param)
{
    return static_cast<SFXRefObjectPointer<T>&>(SFARefObjectPointer::operator=(param));
}// SFXRefObjectPointer<T>::operator= //

template <typename T>
/*public */inline T& SFXRefObjectPointer<T>::operator*(Void) const
{
    return static_cast<T&>(SFARefObjectPointer::operator*());
}// SFXRefObjectPointer<T>::operator* //

template <typename T>
/*public */inline T* SFXRefObjectPointer<T>::operator->(Void) const
{
    return static_cast<T*>(SFARefObjectPointer::operator->());
}// SFXRefObjectPointer<T>::operator-> //

template <typename T>
/*public */inline Void SFXRefObjectPointer<T>::Set(SFXRefObjectPointer<T> const& param)
{
    SFARefObjectPointer::Set(param);
    return;
}// SFXRefObjectPointer<T>::Set //

template <typename T>
/*public */inline Void SFXRefObjectPointer<T>::Set(T* pointer, Bool retain)
{
    SFARefObjectPointer::Set(pointer, retain);
    return;
}// SFXRefObjectPointer<T>::Set //

template <typename T>
/*public */inline T* SFXRefObjectPointer<T>::Get(Void) const
{
    return static_cast<T*>(SFARefObjectPointer::Get());
}// SFXRefObjectPointer<T>::Get //

template <typename T>
/*public */inline Void SFXRefObjectPointer<T>::Attach(T* pointer)
{
    SFARefObjectPointer::Attach(pointer);
    return;
}// SFXRefObjectPointer<T>::Attach //

template <typename T>
/*public */inline T* SFXRefObjectPointer<T>::Detach(Void)
{
    return static_cast<T*>(SFARefObjectPointer::Detach());
}// SFXRefObjectPointer<T>::Detach //

template <typename T>
/*public */inline Void SFXRefObjectPointer<T>::Release(Void)
{
    SFARefObjectPointer::Release();
    return;
}// SFXRefObjectPointer<T>::Release //

template <typename T>
/*public static */inline SFXRefObjectPointer<T> const& SFXRefObjectPointer<T>::EmptyInstance(Void)
{
    return static_cast<SFXRefObjectPointer<T> const&>(SFARefObjectPointer::EmptyInstance());
}// SFXRefObjectPointer<T>::EmptyInstance //

template <typename T, typename M>
inline SFXRefObjectPointer<T> reinterpret_pointer_cast(SFXRefObjectPointer<M> const& param)
{
    M*                                          result = param.Get();

    return SFXRefObjectPointer<T>(reinterpret_cast<T*>(result));
}// reinterpret_pointer_cast //

template <typename T, typename M>
inline SFXRefObjectPointer<T> static_pointer_cast(SFXRefObjectPointer<M> const& param)
{
    M*                                          result = param.Get();

    return SFXRefObjectPointer<T>(static_cast<T*>(result));
}// static_pointer_cast //

template <typename T, typename M>
inline SFXRefObjectPointer<T> const_pointer_cast(SFXRefObjectPointer<M> const& param)
{
    M*                                          result = param.Get();

    return SFXRefObjectPointer<T>(const_cast<T*>(result));
}// const_pointer_cast //

template <typename T, typename M>
inline Bool operator==(SFXRefObjectPointer<T> const& left, SFXRefObjectPointer<M> const& right)
{
    return (left.SFARefObjectPointer::Get() == right.SFARefObjectPointer::Get());
}// operator== //

template <typename T>
inline Bool operator==(SFXRefObjectPointer<T> const& left, SFORefObjectConstPtr right)
{
    return (left.SFARefObjectPointer::Get() == right);
}// operator== //

template <typename T>
inline Bool operator==(SFORefObjectConstPtr left, SFXRefObjectPointer<T> const& right)
{
    return (left == right.SFARefObjectPointer::Get());
}// operator== //

template <typename T, typename M>
inline Bool operator!=(SFXRefObjectPointer<T> const& left, SFXRefObjectPointer<M> const& right)
{
    return (left.SFARefObjectPointer::Get() != right.SFARefObjectPointer::Get());
}// operator!= //

template <typename T>
inline Bool operator!=(SFXRefObjectPointer<T> const& left, SFORefObjectConstPtr right)
{
    return (left.SFARefObjectPointer::Get() != right);
}// operator!= //

template <typename T>
inline Bool operator!=(SFORefObjectConstPtr left, SFXRefObjectPointer<T> const& right)
{
    return (left != right.SFARefObjectPointer::Get());
}// operator!= //

SFARefObjectPointer クラス(内部クラス)の内部実装は、以下の通りです。

#include <SFXGeneral/SFXEnvironment.h.hpp>
#include <SFXStructure/SFORefObject.f.hpp>

SFMTYPEDEFCLASS(SFAResponderPointer)
class SFARefObjectPointer {
    private:
                SFORefObjectPtr                 _pointer;

    public:
                SFORefObjectPtr                 Get                             (Void) const;
    protected:
        explicit                                SFARefObjectPointer             (Void);
                                                SFARefObjectPointer             (SFARefObjectPointerConstRef param);
        explicit                                SFARefObjectPointer             (SFORefObjectPtr pointer, Bool retain = true);
                                                ~SFARefObjectPointer            (Void);
                SFARefObjectPointerRef          operator=                       (SFARefObjectPointerConstRef param);
                SFORefObjectRef                 operator*                       (Void) const;
                SFORefObjectPtr                 operator->                      (Void) const;
                Void                            Set                             (SFARefObjectPointerConstRef param);
                Void                            Set                             (SFORefObjectPtr pointer, Bool retain = true);
                Void                            Attach                          (SFORefObjectPtr pointer);
                SFORefObjectPtr                 Detach                          (Void);
                Void                            Release                         (Void);
        static  SFARefObjectPointerConstRef     EmptyInstance                   (Void);
};

/*public */inline SFYResponderPtr SFAResponderPointer::Get(Void) const
{
    return _pointer;
}// SFAResponderPointer::Get //

/*protected */inline SFAResponderPointerRef SFAResponderPointer::operator=(SFAResponderPointerConstRef param)
{
    Set(param);
    return *this;
}// SFAResponderPointer::operator= //

/*protected */inline SFYResponderRef SFAResponderPointer::operator*(Void) const
{
    return *_pointer;
}// SFAResponderPointer::operator* //

/*protected */inline SFYResponderPtr SFAResponderPointer::operator->(Void) const
{
    return _pointer;
}// SFAResponderPointer::operator-> //

#include <SFXStructure/SFORefObject.h.hpp>

/*protected */SFARefObjectPointer::SFARefObjectPointer(Void) : _pointer(null)
{
}// SFARefObjectPointer::SFARefObjectPointer //

/*protected */SFARefObjectPointer::SFARefObjectPointer(SFARefObjectPointerConstRef param) : _pointer(param._pointer)
{
    if (_pointer != null) {
        _pointer->Retain();
    }
}// SFARefObjectPointer::SFARefObjectPointer //

/*protected */SFARefObjectPointer::SFARefObjectPointer(SFORefObjectPtr pointer, Bool retain) : _pointer(pointer)
{
    if (retain) {
        if (_pointer != null) {
            _pointer->Retain();
        }
    }
}// SFARefObjectPointer::SFARefObjectPointer //

/*protected */SFARefObjectPointer::~SFARefObjectPointer(Void)
{
    if (_pointer != null) {
        _pointer->Release();
    }
}// SFARefObjectPointer::~SFARefObjectPointer //

/*protected */Void SFARefObjectPointer::Set(SFARefObjectPointerConstRef param)
{
    if (_pointer != null) {
        _pointer->Release();
    }
    _pointer = param._pointer;
    if (_pointer != null) {
        _pointer->Retain();
    }
    return;
}// SFARefObjectPointer::Set //

/*protected */Void SFARefObjectPointer::Set(SFORefObjectPtr pointer, Bool retain)
{
    if (_pointer != null) {
        _pointer->Release();
    }
    _pointer = pointer;
    if (retain) {
        if (_pointer != null) {
            _pointer->Retain();
        }
    }
    return;
}// SFARefObjectPointer::Set //

/*protected */Void SFARefObjectPointer::Attach(SFORefObjectPtr pointer)
{
    if (_pointer != null) {
        _pointer->Release();
    }
    _pointer = pointer;
    return;
}// SFARefObjectPointer::Attach //

/*protected */SFORefObjectPtr SFARefObjectPointer::Detach(Void)
{
    SFORefObjectPtr                             result(_pointer);

    _pointer = null;
    return result;
}// SFARefObjectPointer::Detach //

/*protected */Void SFARefObjectPointer::Release(Void)
{
    if (_pointer != null) {
        _pointer->Release();
    }
    _pointer = null;
    return;
}// SFARefObjectPointer::Release //

/*protected static */SFARefObjectPointerConstRef SFARefObjectPointer::EmptyInstance(Void)
{
    static UInt64Const                          result[cluster64of(SFARefObjectPointer)] = {
        0
    };

    return *reinterpret_cast<SFARefObjectPointerConstPtr>(result);
}// SFARefObjectPointer::EmptyInstance //

参照

SFORefObject

メンバ

コンストラクタ/デストラクタ
SFXRefObjectPointer( Void )
SFXRefObjectPointer クラスのコンストラクタです。
SFXRefObjectPointer( SFXRefObjectPointer< M > const & param )
SFXRefObjectPointer クラスのコンストラクタです。
SFXRefObjectPointer( SFXRefObjectPointer< T > const & param )
SFXRefObjectPointer クラスのコンストラクタです。
SFXRefObjectPointer( T * pointer , Bool retain = true )
SFXRefObjectPointer クラスのコンストラクタです。
パブリック関数
Void Attach( T * pointer )
インスタンスの解放責任を受けます。
T * Detach( Void )
インスタンスの解放責任を譲ります。
static
SFXRefObjectPointer< T > const &
EmptyInstance( Void )
null を表す SFXRefObjectPointer インスタンスを取得します。
T * Get( Void )
保持しているインスタンスのポインタを取得します。
Void Release( Void )
内部に保持しているインスタンスを解放します。
Void Set( SFXRefObjectPointer< M > const & param )
指定されたインスタンスを設定します。
Void Set( SFXRefObjectPointer< T > const & param )
指定されたインスタンスを設定します。
Void Set( T * pointer , Bool retain = true )
指定されたインスタンスを設定します。
Bool operator!=( SFXRefObjectPointer< T > const & left , SFXRefObjectPointer< M > const & right )
!= の関係を判定します。
Bool operator!=( SFXRefObjectPointer< T > const & left , SFORefObjectConstPtr right )
!= の関係を判定します。
Bool operator!=( SFORefObjectConstPtr left , SFXRefObjectPointer< T > const & right )
!= の関係を判定します。
T & operator*( Void )
保持しているインスタンスを取得します。
T * operator->( Void )
保持しているインスタンスのメンバにアクセスします。
SFXRefObjectPointer< T > & operator=( SFXRefObjectPointer< M > const & param )
インスタンスのポインタを代入します。
SFXRefObjectPointer< T > & operator=( SFXRefObjectPointer< T > const & param )
インスタンスのポインタを代入します。
Bool operator==( SFXRefObjectPointer< T > const & left , SFXRefObjectPointer< M > const & right )
== の関係を判定します。
Bool operator==( SFXRefObjectPointer< T > const & left , SFORefObjectConstPtr right )
== の関係を判定します。
Bool operator==( SFORefObjectConstPtr left , SFXRefObjectPointer< T > const & right )
== の関係を判定します。

SFXRefObjectPointer::SFXRefObjectPointer
SFXRefObjectPointer クラスのコンストラクタです。
[ public, explicit ]
SFXRefObjectPointer(Void);
[ public ]
SFXRefObjectPointer(
    SFXRefObjectPointer< M > const & param   // コピーする SFXRefObjectPointer の const 参照
);
[ public ]
SFXRefObjectPointer(
    SFXRefObjectPointer< T > const & param   // コピーする SFXRefObjectPointer の const 参照
);
[ public, explicit ]
SFXRefObjectPointer(
    T * pointer          // 格納するインスタンスのポインタ
    Bool retain = true   // 参照カウンタを増加させるかどうかを指定する
);

解説

このコンストラクタは、 指定されたインスタンスを設定します。

[Note] 注意

引数が SFXRefObjectPointer インスタンスの場合は、コピーされます。

デフォルトでは、 設定するインスタンスの参照カウンタはインクリメントされます。

参照

SFXRefObjectPointer::Set


SFXRefObjectPointer::Attach
インスタンスの解放責任を受けます。
[ public ]
Void Attach(
    T * pointer   // 解放責任を譲るインスタンスのポインタ
);

解説

この関数は、指定されたインスタンスの解放責任を受けます。

[Note] 注意

SFXRefObjectPointer クラスが解放責任を受けると、 SFXRefObjectPointer クラスがインスタンスを管理するようになり、 参照カウントの自動管理が行われます。

Attach 関数は

    SFXRefObjectPointer::Set(address, false);

を実行するのと同じです。

参照

SFXRefObjectPointer::Detach


SFXRefObjectPointer::Detach
インスタンスの解放責任を譲ります。
[ public ]
T * Detach(Void);

戻り値

SFXRefObjectPointer クラスが内部に保持しているインスタンス。

解説

この関数は、 SFXRefObjectPointer クラスが内部に保持しているインスタンスの解放責任を譲ります。

[Note] 注意

SFXRefObjectPointer クラスは内部で保持していたインスタンスを管理しなくなり、 参照カウントの自動管理が行われなくなります。

参照

SFXRefObjectPointer::Attach


SFXRefObjectPointer::EmptyInstance
null を表す SFXRefObjectPointer インスタンスを取得します。
[ public, static ]
SFXRefObjectPointer< T > const & EmptyInstance(Void);

戻り値

null を表す SFXRefObjectPointer インスタンスのリファレンス。

解説

この関数は、 null を表す SFXRefObjectPointer インスタンスを取得します。

[Note] 注意

この関数を利用すれば、 null を表す SFXRefObjectPointer インスタンスの const 参照を返すことができます。

内部実装

この関数の内部実装は以下の通りです。

template <typename T>
/*public static */inline SFXRefObjectPointer<T> const& SFXRefObjectPointer<T>::EmptyInstance(Void)
{
    return static_cast<SFXRefObjectPointer<T> const&>(SFARefObjectPointer::EmptyInstance());
}// SFXRefObjectPointer<T>::EmptyInstance //

/*protected static */SFARefObjectPointerConstRef SFARefObjectPointer::EmptyInstance(Void)
{
    static UInt64Const                          result[cluster64of(SFARefObjectPointer)] = {
        0
    };

    return *reinterpret_cast<SFARefObjectPointerConstPtr>(result);
}// SFARefObjectPointer::EmptyInstance //
[Note] cluster64of マクロ

cluster64of マクロは、 8 バイト境界にアラインしたときに 8 バイトのクラスターがいくつ必要になるかを計算するマクロです。


SFXRefObjectPointer::Get
保持しているインスタンスのポインタを取得します。
[ public, const ]
T * Get(Void);

戻り値

保持しているインスタンスのポインタ。

解説

この関数は、 保持しているインスタンスのポインタを取得します。

参照

SFXRefObjectPointer::Set
SFXRefObjectPointer::Release
内部に保持しているインスタンスを解放します。
[ public ]
Void Release(Void);

解説

この関数は、 内部に保持しているインスタンスを解放します。

[Note] 注意

SFXRefObjectPointer クラスが内部に保持しているインスタンスの参照カウンタをデクリメントし、 インスタンスの管理をしなくなります。

参照

SFXRefObjectPointer::Set


SFXRefObjectPointer::Set
指定されたインスタンスを設定します。
[ public ]
Void Set(
    SFXRefObjectPointer< M > const & param   // 設定する SFXRefObjectPointer の const 参照
);
[ public ]
Void Set(
    SFXRefObjectPointer< T > const & param   // 設定する SFXRefObjectPointer の const 参照
);
[ public ]
Void Set(
    T * pointer          // 格納するインスタンスのポインタ
    Bool retain = true   // 参照カウンタをインクリメントさせるかどうか
);

解説

この関数は、 指定されたインスタンスを設定します。

[Note] 注意

旧いインスタンスの参照カウンタをデクリメントしてから、 新しいインスタンスのポインタを設定します。

デフォルトでは、 新しいインスタンスの参照カウンタはインクリメントされます。

参照

SFXRefObjectPointer::Get | SFXRefObjectPointer::SFXRefObjectPointer | SFXRefObjectPointer::operator=


SFXRefObjectPointer::const_pointer_cast
SFXRefObjectPointer 同士で const_cast を行います。
SFXRefObjectPointer< T > const_pointer_cast(
    SFXRefObjectPointer< M > const & param   // キャストするポインタ
);

解説

この関数は、 SFXRefObjectPointer 同士で const_cast を行います。

[Note] 注意

SFXRefObjectPointer 同士の const_cast は、 const_pointer_cast 関数を使用して行います。

参照

SFXRefObjectPointer::static_pointer_cast | SFXRefObjectPointer::reinterpret_pointer_cast | SFXRefObjectPointer


SFXRefObjectPointer::reinterpret_pointer_cast
SFXRefObjectPointer 同士で reinterpret_cast を行います。
SFXRefObjectPointer< T > reinterpret_pointer_cast(
    SFXRefObjectPointer< M > const & param   // キャストするポインタ
);

解説

この関数は、 SFXRefObjectPointer 同士で reinterpret_cast を行います。

[Note] 注意

SFXRefObjectPointer 同士の reinterpret_cast は、 reinterpret_pointer_cast 関数を使用して行います。

参照

SFXRefObjectPointer::static_pointer_cast | SFXRefObjectPointer::const_pointer_cast | SFXRefObjectPointer


SFXRefObjectPointer::static_pointer_cast
SFXRefObjectPointer 同士で static_cast を行います。
SFXRefObjectPointer< T > static_pointer_cast(
    SFXRefObjectPointer< M > const & param   // キャストするポインタ
);

解説

この関数は、 SFXRefObjectPointer 同士で static_cast を行います。

[Note] 注意

SFXRefObjectPointer 同士の static_cast は、 static_pointer_cast 関数を使用して行います。

参照

SFXRefObjectPointer::const_pointer_cast | SFXRefObjectPointer::reinterpret_pointer_cast | SFXRefObjectPointer


SFXRefObjectPointer::operator->
保持しているインスタンスのメンバにアクセスします。
[ public, const ]
T * operator->(Void);

戻り値

保持しているインスタンスのポインタ。

解説

このオペレータは、 保持しているインスタンスのメンバにアクセスします。

[Note] -> オペレータのオーバーロード

オーバーロードされた -> オペレータでは、 戻り値に対して事前定義された -> オペレータが更に作用されます。

SFXRefObjectPointer::Get 関数は保持しているインスタンスのポインタを返すだけですが、 SFXRefObjectPointer::operator-> オペレータは保持しているインスタンスのポインタを取得し、 更に事前定義された -> オペレータを呼び出し、 保持しているインスタンスのメンバにアクセスします。

参照

SFXRefObjectPointer::operator* | SFXRefObjectPointer::Get


SFXRefObjectPointer::operator=
インスタンスのポインタを代入します。
[ public ]
SFXRefObjectPointer< T > & operator=(
    SFXRefObjectPointer< M > const & param   // 代入する SFXRefObjectPointer の const 参照
);
[ public ]
SFXRefObjectPointer< T > & operator=(
    SFXRefObjectPointer< T > const & param   // 代入する SFXRefObjectPointer の const 参照
);

解説

このオペレータは、 インスタンスのポインタを代入します。

[Note] 注意

このオペレータは、 内部で SFXRefObjectPointer::Set 関数を呼び出します。

参照

SFXRefObjectPointer::Set


SFXRefObjectPointer::operator==
== の関係を判定します。
[ public, friend ]
Bool operator==(
    SFXRefObjectPointer< T > const & left    // 比較する SFXRefObjectPointer の const 参照
    SFXRefObjectPointer< M > const & right   // 比較する SFXRefObjectPointer の const 参照
);
[ public, friend ]
Bool operator==(
    SFXRefObjectPointer< T > const & left   // 比較する SFXRefObjectPointer の const 参照
    SFORefObjectConstPtr right              // 比較する SFORefObject の const ポインタ
);
[ public, friend ]
Bool operator==(
    SFORefObjectConstPtr left                // 比較する SFORefObject の const ポインタ
    SFXRefObjectPointer< T > const & right   // 比較する SFXRefObjectPointer の const 参照
);

戻り値

  • 等しいとき: true
  • 異なるとき: false

解説

このオペレータは、 == の関係を判定します。

参照

SFXRefObjectPointer::operator!=


SFXRefObjectPointer::operator*
保持しているインスタンスを取得します。
[ public, const ]
T & operator*(Void);

戻り値

保持しているインスタンス。

解説

このオペレータは、 保持しているインスタンスを取得します。

参照

SFXRefObjectPointer::operator->


SFXRefObjectPointer::operator!=
!= の関係を判定します。
[ public, friend ]
Bool operator!=(
    SFXRefObjectPointer< T > const & left    // 比較する SFXRefObjectPointer の const 参照
    SFXRefObjectPointer< M > const & right   // 比較する SFXRefObjectPointer の const 参照
);
[ public, friend ]
Bool operator!=(
    SFXRefObjectPointer< T > const & left   // 比較する SFXRefObjectPointer の const 参照
    SFORefObjectConstPtr right              // 比較する SFORefObject の const ポインタ
);
[ public, friend ]
Bool operator!=(
    SFORefObjectConstPtr left                // 比較する SFORefObject の const ポインタ
    SFXRefObjectPointer< T > const & right   // 比較する SFXRefObjectPointer の const 参照
);

戻り値

  • 異なるとき: true
  • 等しいとき: false

解説

このオペレータは、 == の関係を判定します。

参照

SFXRefObjectPointer::operator==