C ++ Зачем нужен Sleed_ptr, когда у нас есть shared_ptr use_count ()?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ Зачем нужен Sleed_ptr, когда у нас есть shared_ptr use_count ()?

Сообщение Anonymous »

Задал глупую вопрос. Из того, что я понимаю, одно использование Sleed_ptr - это проверить состояние подсчета общего указателя на объекте. Не могли бы мы просто использовать wared_ptr use_count (), чтобы получить эту информацию. Если да, то зачем нужен слабый_Птр?#include
#include
using namespace std;

int main() {

shared_ptr a(new int(10));
weak_ptr wa(a);
a.reset();
assert(a.use_count() == 0); // clause 1 - good. indicate no binding objects
assert(wa.lock() == nullptr); // clause 2 - good. same as above

return 0;

}

< /code>
Пункт 1 и 2 дает идентичные результаты.

Так почему нуждается в Sleed_ptr (помещение безопасности потока) для проверки на нулевые объекты при привязке, когда может быть shared_ptr.use_count () Сделайте работу?>

Подробнее здесь: https://stackoverflow.com/questions/792 ... -use-count
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»