Я читаю документы на DirectXMath, и наткнулся на следующий проход:Как shared_ptr нарушить Alignment
В качестве альтернативы обеспечении согласованности в вашем C++ класса непосредственно перегрузкой новые/удалить, вы можете использовать pImpl идиома. Если вы гарантируете , ваш класс Impl выровнен через __aligned_malloc внутренне, вы можете , затем свободно использовать выровненные типы во внутренней реализации. Этот является хорошим вариантом, когда «общедоступный» класс является стандартом Windows Runtime ref или предназначен для использования с std :: shared_ptr <>, который в противном случае нарушает тщательное выравнивание.
Я не понимаю, как shared_ptr может внести изменения в стратегию выравнивания, у него есть только указатель, он не выделяет объект.
Согласен. Мне кажется, что документы устарели. в C++ 11 вы можете указать выравнивание вашего типа данных с помощью атрибутов. –