Replace managed class with rcp_managed macro

This commit is contained in:
josh committed 2026-02-23 20:19:37 -05:00
1 parent f5d52dfe98
commit fac82eaaad
2 files changed
+28 -12

No files matched your search

+10 -12
View File
@@ -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(); \
}
};