2015-12-20 3 views
2

Неправильно ли назначать предопределенный указатель на объект shared_ptr?
Например:Использовать shared_ptr с предустановленным указателем

some_type* 3rd_party_func(...) 
{ 
    return new some_pointer; 
} 

re_val my_func() 
{ 
shared_ptr<some_type> my_ptr(3rd_party_func()); 
} 

Спасибо!

+0

Вы, скорее всего, понадобится функция пользовательского DeleteR. – StoryTeller

ответ

4

Нет, это не проблема. На самом деле это довольно часто. В качестве бонуса, если ваша библиотека третья сторона возвращает указатель, который, как предполагается, должны быть высвобождены с помощью функции библиотеки, а не delete, вы можете сделать это:

shared_ptr<some_type> my_ptr(3rd_party_func(), 3rd_party_free);