Add rcp::create()
This commit is contained in:
parent
ffe8433d55
commit
21f2dd4cad
@ -104,6 +104,12 @@ public:
|
|||||||
{
|
{
|
||||||
return ptr != nullptr;
|
return ptr != nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename... Args>
|
||||||
|
static rcp<T> create(Args&&... args)
|
||||||
|
{
|
||||||
|
return T::create(std::forward<Args>(args)...);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define rcp_managed_root(classname) \
|
#define rcp_managed_root(classname) \
|
||||||
|
|||||||
@ -77,10 +77,18 @@ void test_booleans()
|
|||||||
assert(!myderived);
|
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[])
|
int main(int argc, char * argv[])
|
||||||
{
|
{
|
||||||
test_destructors_called();
|
test_destructors_called();
|
||||||
test_dereference();
|
test_dereference();
|
||||||
test_booleans();
|
test_booleans();
|
||||||
|
test_create();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user