mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 13:07:42 +00:00
Work on CMemoryCardDriver
This commit is contained in:
@@ -13,6 +13,15 @@ public:
|
||||
virtual ~IVParamObj() {}
|
||||
};
|
||||
|
||||
template<class T>
|
||||
class TObjOwnerParam : public IVParamObj
|
||||
{
|
||||
T m_param;
|
||||
public:
|
||||
TObjOwnerParam(T&& obj) : m_param(std::move(obj)) {}
|
||||
T& GetParam() {return m_param;}
|
||||
};
|
||||
|
||||
class CVParamTransfer
|
||||
{
|
||||
std::shared_ptr<IVParamObj> m_ref;
|
||||
@@ -23,16 +32,10 @@ public:
|
||||
IVParamObj* GetObj() const {return m_ref.get();}
|
||||
CVParamTransfer ShareTransferRef() {return CVParamTransfer(*this);}
|
||||
|
||||
static CVParamTransfer Null() {return CVParamTransfer();}
|
||||
};
|
||||
template <class T>
|
||||
T& GetOwnedObj() const {return static_cast<TObjOwnerParam<T>*>(GetObj())->GetParam();}
|
||||
|
||||
template<class T>
|
||||
class TObjOwnerParam : public IVParamObj
|
||||
{
|
||||
T m_param;
|
||||
public:
|
||||
TObjOwnerParam(T&& obj) : m_param(std::move(obj)) {}
|
||||
T& GetParam() {return m_param;}
|
||||
static CVParamTransfer Null() {return CVParamTransfer();}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user