Replace managed class with rcp_managed macro
This commit is contained in:
1 parent
f5d52dfe98
commit
fac82eaaad
2 files changed
+28
-12
No files matched your search
+10
-12
@@ -123,16 +123,14 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class managed
|
||||
{
|
||||
public:
|
||||
static_assert(std::is_base_of<root, T>::value,
|
||||
"T must inherit from rcp::root to use rcp::managed<T>");
|
||||
|
||||
rcp<T> get_rcp()
|
||||
{
|
||||
root * r = (root *)this;
|
||||
return rcp<T>(r->get_root_rcp());
|
||||
#define rcp_managed(classname) \
|
||||
rcp<classname> get_rcp() \
|
||||
{ \
|
||||
root * r = (root *)this; \
|
||||
return rcp<classname>(r->get_root_rcp()); \
|
||||
} \
|
||||
template <typename... Args> \
|
||||
static rcp<classname> create(Args&&... args) \
|
||||
{ \
|
||||
return (new classname(std::forward<Args>(args)...))->get_rcp(); \
|
||||
}
|
||||
};
|
||||
Reference in new issue
Block a user