Я хотел бы передать указатели на d
вокруг от одного контейнера к другому. Ни в коем случае не будет более одного владельца указателя (или самого d
). Мне бы хотелось, чтобы последний указатель вышел из области видимости, автоматически вызвал delete d
.Использование unique_ptr без C++ 11
В C++ 11 я бы сделал это с помощью unique_ptr. Но, увы, я не могу использовать C++ 11. Каков наилучший эквивалент в C++? Boost в порядке. Или, если их нет, каков подходящий способ справиться с этим?
«Мне бы хотелось, если последний указатель выходит за пределы области действия, удалите d автоматически.» Это не похоже на функциональность 'unique_ptr', но больше похоже на' shared_ptr'. – juanchopanza
'shared_ptr' также является новым в C++ 11. Итак, в любом случае, если у вас нет компилятора C++ 11, вам нужно использовать Boost или аналогичную стороннюю библиотеку или написать свои собственные интеллектуальные указатели. –
'uinque_ptr' очень похож на' shared_ptr', за исключением того, что он принимает одного владельца, поэтому указатель перемещается, а не копируется. –