Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: boost::*_ptr
Форум на CrossPlatform.RU > Библиотеки > boost
void*
мне нужен самый обычный смарт-поинтер, который бы при выходе из скопа подчищал бы память за своим объектом, какой указатель для этого лучше подходит?
также, может ли кто-нибудь охарактеризовать разные виды бустовских смарт-поинтеров? какие особенности, где лучше использовать?
Tonal
scoped_ptr именно это и делакт.
void*
еще один вопрос: допустим есть
{
boost::scoped_ptr<MyClass> ptr = new MyClass;

можно ли освобождать память самому? например так:
if(...) delete ptr; //память очищается при выполнении какого-то условия
}

будет ли все корректно происходить и в случае невыполнения if-инструкции scoped_ptr очистит память сам, если она не была освобождена?
Tonal
Нет. Памятью занимается сам scoped_ptr.
delete ptr вообще не скомпилиться, т.к. ptr не является указателем.
Если нужно досрочно удалить объект, можно написать ptr.reset();
void*
Tonal, спасибо, буду знать
Andrew Selivanov
Цитата(void* @ 11.7.2008, 20:20) *
мне нужен самый обычный смарт-поинтер, который бы при выходе из скопа подчищал бы память за своим объектом, какой указатель для этого лучше подходит?
также, может ли кто-нибудь охарактеризовать разные виды бустовских смарт-поинтеров? какие особенности, где лучше использовать?

Если ты не собираешься пихать указатели в контейнер, рассмотри std::auto_ptr :)
Ну а boost указатели хорошо расписаны в доках http://www.boost.org/doc/libs/1_35_0/libs/...r/smart_ptr.htm
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.