В моем приложении мне нужно использовать CArray для управления набором указателей. Каждый указатель указывает на объект, выделенный в куче.
Поскольку CArray больше не поддерживает DestructElements, я подумываю использовать интеллектуальный указатель, особенно shared_ptr, следующим образом:
CArray<std::shared_ptr<CMyObject>, std::shared_ptr<CMyObject>>
IПрочитайте исходные коды CArray и узнайте, что он выделит пространство элемента в куче. Однако в документе https://docs.microsoft.com/en-us/cpp/cpp/smart-pointers-modern-cpp?view=vs-2015 говорится: «Не используйте выражение new или malloc в самом интеллектуальном указателе», что означает, что интеллектуальный указатель не должен размещаться в куче. Так можно ли использовать умный указатель в качестве элемента в CArray?
Спасибо