Как я понимаю, в текущей спецификации С++ 11 следует использовать:
-
std::unique_ptr<>
для одного владельца (большую часть времени) -
std::shared_ptr<>
только при наличии нескольких владельцев в ациклической структуре -
std::weak_ptr<>
экономно только тогда, когда есть циклы, которые необходимо сломать - Необработанный указатель как дескриптор в память (без права собственности), когда ссылки не хватит
Итак, мои вопросы:
- Являются ли эти политики достаточными или существуют дополнительные политики, которые Я должен знать?
- Эффективны ли
scoped_ptr<>
иauto_ptr<>
?