Можно ли дать boost::shared_ptr
средство удаления по умолчанию для определенного типа (это не delete
)?
В настоящее время у меня есть:
// .h
typedef boost::shared_ptr<SomeType> SomeTypePtr;
SomeTypePtr InitPtr(SomeType * p);
// .cpp
struct SomeTypeDeleter { ... };
SomeTypePtr InitPtr(SomeType * p)
{
return SomeTypePtr(p, SomeTypeDeleter());
}
Я хотел быиспользовать другое средство удаления по умолчанию, поэтому я могу пропустить метод InitPtr
и вместо этого использовать
SomeTypePtr(pSomeType); // uses SomeTypeDeleter
SomeTypePtr(pSomeType, NullDeleter); // uses specified deleter
Какой лучший способ сделать это?