#ifndef _CVPARAMTRANSFER #define _CVPARAMTRANSFER #include "Kyoto/IObj.hpp" #include class IVParamObj : public IObj {}; template < typename T > class TObjOwnerParam : public IVParamObj { public: T* GetData() const { return static_cast(x4_data); } private: T* x4_data; }; class CVParamTransfer { public: template < typename T > CVParamTransfer(TObjOwnerParam< T >* obj) : x0_obj(obj) {} static CVParamTransfer Null(); const IVParamObj& operator*() const { return *x0_obj; } private: rstl::rc_ptr< IVParamObj > x0_obj; }; #endif // _CVPARAMTRANSFER