Lumino
ln::WeakRefPtr< T > Class Template Reference

#include <Object.hpp>

Public Member Functions

 WeakRefPtr ()
 コンストラクタ
 
 WeakRefPtr (T *obj)
 コンストラクタ
 
 WeakRefPtr (const WeakRefPtr< T > &obj)
 コピーコンストラクタ
 
virtual ~WeakRefPtr ()
 デストラクタ
 
bool isAlive () const
 監視しているオブジェクトが削除されておらず、使用できるかを確認します。
 
Ref< T > resolve () const
 監視しているオブジェクトへの Ref を取得します。
 

Detailed Description

template<class T>
class ln::WeakRefPtr< T >

監視しているオブジェクトにアクセスする場合は isAlive()resolve() を併用しないでください。 マルチスレッドプログラムで不正アクセスの危険があります。 次のコードは間違いです。

WeakRefPtr<MyClass> weak(obj);
if (weak.isAlive())
weak->resolve()->Func();

正しいコードは次の通りです。

WeakRefPtr<MyClass> weak(obj);
Ref<MyClass> ptr = weak.resolve();
if (ptr != nullptr)
ptr->Func();

The documentation for this class was generated from the following file: