mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
Update memory.h
This commit is contained in:
parent
f503484daa
commit
c2c7630320
@ -69,7 +69,8 @@ namespace pkpy{
|
|||||||
|
|
||||||
template <typename T, typename U, typename... Args>
|
template <typename T, typename U, typename... Args>
|
||||||
shared_ptr<T> make_shared(Args&&... args) {
|
shared_ptr<T> make_shared(Args&&... args) {
|
||||||
static_assert(std::is_base_of<T, U>::value, "U must be derived from T");
|
static_assert(std::is_base_of_v<T, U>, "U must be derived from T");
|
||||||
|
static_assert(std::has_virtual_destructor_v<T>, "T must have virtual destructor");
|
||||||
int* p = (int*)malloc(sizeof(int) + sizeof(U));
|
int* p = (int*)malloc(sizeof(int) + sizeof(U));
|
||||||
*p = 1;
|
*p = 1;
|
||||||
new(p+1) U(std::forward<Args>(args)...);
|
new(p+1) U(std::forward<Args>(args)...);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user