Недавно я начал оценивать std::auto_ptr
, и теперь я прочитал, что это будет deprecated. Я начал использовать его для двух ситуаций:
- Возвращаемое значение factory
- Передача прав на передачу информации
Примеры:
// Exception safe and makes it clear that the caller has ownership.
std::auto_ptr<Component> ComponentFactory::Create() { ... }
// The receiving method/function takes ownership of the pointer. Zero ambiguity.
void setValue(std::auto_ptr<Value> inValue);
Несмотря на проблематичную семантику копирования, я нахожу auto_ptr
полезным. И, похоже, альтернативы для приведенных выше примеров не существует.
Должен ли я продолжать использовать его, а затем переключаться на std::unique_ptr
? Или его следует избегать?