Add rcp::create()

This commit is contained in:
Josh Holtrop 2026-02-23 22:52:07 -05:00
parent ffe8433d55
commit 21f2dd4cad
2 changed files with 14 additions and 0 deletions

View File

@ -104,6 +104,12 @@ public:
{
return ptr != nullptr;
}
template <typename... Args>
static rcp<T> create(Args&&... args)
{
return T::create(std::forward<Args>(args)...);
}
};
#define rcp_managed_root(classname) \

View File

@ -77,10 +77,18 @@ void test_booleans()
assert(!myderived);
}
void test_create()
{
typedef rcp<MyBase> MyB;
MyB myb = MyB::create(8, 9);
assert(myb->x == 8);
}
int main(int argc, char * argv[])
{
test_destructors_called();
test_dereference();
test_booleans();
test_create();
return 0;
}