Использование shared_ptr с CArray? - PullRequest
0 голосов
/ 05 ноября 2019

В моем приложении мне нужно использовать 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?

Спасибо

...