В нашем большом проекте у нас есть класс много со следующими typedef
-х:семантические значения станд :: auto_ptr и повышение :: shared_ptr
class Foo
{
public:
typedef std::auto_ptr<Foo> Ptr;
typedef boost::shared_ptr<Foo> Ref;
...
};
...
Foo::Ref foo(new Foo);
...
doBar(foo);
...
с помощью них очень удобно. Но я сомневаюсь, что auto_ptr
семантически близко к Ptr
и shared_ptr
- это то же самое, что и ref? Или следует использовать auto_ptr
, так как имеет семантику передачи прав собственности?
Спасибо,
'станд :: auto_ptr' не нарушена. Как указано, он слишком сложный, но он хорошо работает для того, для чего он был предназначен, и, безусловно, более полезен , чем 'boost :: shared_ptr'. –