Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can shared_ptr disrupt alignment

Tags:

I'm reading docs on DirectXMath, and stumbled upon next passage:

As an alternative to enforcing alignment in your C++ class directly by overloading new/delete, you can use the pImpl idiom. If you ensure your Impl class is aligned via __aligned_malloc internally, you can then freely use aligned types within the internal implementation. This is a good option when the 'public' class is a Windows Runtime ref class or intended for use with std::shared_ptr<>, which can otherwise disrupt careful alignment.

I don't understand how shared_ptr can do any change in alignment strategy, it only have a pointer, it doesn't allocate an object.