QScopedPointer Vs boost :: scoped_ptr [какой выбрать] - PullRequest
2 голосов
/ 18 августа 2011

Если бы у меня была возможность выбрать между QScopedPointer и boost::scoped_ptr, что было бы лучше всего в следующих случаях:

1. QScopedPointer<QObject> Vs boost::scoped_ptr<QObject>
2. QScopedPointer<QtContainer> Vs boost::scoped_ptr<QtContainer>
3. QScopedPointer::data() Vs boost::scoped_ptr::get()

1 Ответ

6 голосов
/ 18 августа 2011

Они оба делают одно и то же. Похоже, версия Qt способна скрыться с указателем (QScopedPointer::take()), что позволяет передавать права собственности другому лицу. Вы не можете сделать это с scoped_ptr, но вы можете поменять оба вида.

boost::scoped_ptr и QScopedPointer также явно не копируются.

QScopedPointer действительно имеет механизм, который позволяет вам передавать «удалитель» указателю. Фактически это открытый статический член данного класса, поэтому QScopedPointer по-прежнему имеет размер только указателя. Это означает, что тип QScopedPointer должен включать тип средства удаления.

Оба они устарели std::unqiue_ptr в C ++ 0x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...