I have the following shared pointer which needs to be AVX aligned (256bits):
std::shared_ptr<int> data;
data.reset(alignedAlloc(size), alignedDeleter);
The alignedDeleter function contains a debug message, it prints correctly when data is destroyed.
Then I create a second shared pointer like this:
std::shared_ptr<int> * shared = new std::shared_ptr<int>(data);
Then data is destroyed, and delete shared; is called. The alignedDeleter function is never called this time.
It seems the copy constructor is not taking the deleter from the original object, is this possible, and why?
Aucun commentaire:
Enregistrer un commentaire