智能指针类变量析构函数

问题描述 投票:0回答:0

我有一个包含共享指针的 classX

std::shared_ptr<T> sharedPTR;

我希望存储在共享指针中的指针对齐,所以在我拥有的每个构造函数中,我都像这样初始化 sharedPTR

this->sharedPTR.reset((T*) _mm_malloc(this->size, 64))

但这会导致不匹配的释放/删除,因为默认的析构函数调用

delete ptr
其中 ptr 是存储在智能指针中的指针

注意我知道我们可以使用这个

this->sharedPTR = std::shared_ptr<T>((T *) _mm_malloc(this->mSize, 64), 
[](T* ptr){ _mm_free(ptr);});

但是我有这么多的构造函数,我每次都必须重复这个,它看起来不太好。

c++ memory-management alignment smart-pointers
© www.soinside.com 2019 - 2024. All rights reserved.