
为什么C++标准库中atomic shared_ptr不是lockfree实现? - 知乎
假如你有个 shared_ptr,但多个线程持有它的引用,那通过引用对shared_ptr的任何修改都不安全,比如reset和swap,而 atomic 之后能保证。
C++11智能指针 shared_ptr、weak_ptr和unique_ptr详解 - 知乎
share_ptr是C++11新添加的智能指针,它限定的资源可以被多个指针共享。 只有指向动态分配的对象的指针才能交给 shared_ptr 对象托管。 将指向普通局部变量、全局变量的指针交给 shared_ptr 托管,编译时不会有问题,但程序运行时会出错,因为不能析构一个并没有指向动态分配的内存空间的指针。 cout << "pa.use_count " << pa.use_count() << endl;//1. cout << "*pb " << *pb << endl;//USA. cout << "pb.use_count " << pb.use_count() << endl;//1. pa = pb; cout << …
ptr_fun与bind适配-CSDN博客
2013年1月2日 · ptr_fun是将一个普通的 函数 适配成一个functor,添加上argument type和result type等类型, 其实现如下(例子里面是binary_function,unary_function同理): pointer_to_binary_function<_Arg1, _Arg2, _Result, . _Result(__fastcall *)(_Arg1, _Arg2)> . _Result (__fastcall *)(_Arg1, _Arg2)>(_Left)); .
[C++11新特性] weak_ptr和unique_ptr - fengMisaka - 博客园
2021年3月25日 · unique_ptr 相对于其他两个智能指针更加简单,它和 shared_ptr 使用差不多,但是功能更为单一,它是一个独占型的智能指针,不允许其他的智能指针共享其内部的指针,更像原生的指针(但更为安全,能够自己释放内存)。
C++智能指针之unique_ptr(保姆级教学) - CSDN博客
2023年9月7日 · 根据容器的特性,类型相同的变量可以存放在同一个容器中,我们使用 vector 容器成功验证了shared_ptr,如下图所示 而指定不同删除器会导致不同类型的unique_ptr,因为unique_ptr的尺寸会发生变化
如何使用C++中的std::shared_ptr? - 知乎
2025年1月16日 · std::shared_ptr 是C++11标准库中提供的一种强大的智能指针,它实现了对动态分配对象的共享所有权管理,有效地避免了内存泄漏和悬挂指针问题。
手撕代码:实现自己的unique_ptr - CSDN博客
2024年5月13日 · 本文将指导你从零开始实现一个简单的 unique_ptr 类,以深入理解其内部机制。 unique_ptr 是一种独占所有权的智能指针,即同一时间只能有一个 unique_ptr 指向某个对象。
std::weak_ptr 与 std::shared_ptr 配合使用 - strive-sun - 博客园
2022年3月8日 · weak_ptr 在功能上类似于普通指针, 然而一个比较大的区别是, 弱引用能检测到所管理的对象是否已经被释放, 从而避免访问非法内存。 weak_ptr 没有重载*和->但可以使用 lock 获得一个可用的 shared_ptr 对象 比如,
shared_ptr(作为局部变量返回) - kilen - 博客园
2017年7月6日 · 智能指针:shared_ptr. 1、一个局部的shared_ptr 作为返回值过程:当shared_ptr 被创建的时候,自身的引用计数 +1,当前引用计数为 1 , 按值返回以后 引用计数 + 1 (拷贝构造函数,就是可以理解为基础类型的拷贝),当前引用计数为 2 ,函数执行完成之后,申请的shared_ptr析构(销毁变量),引用计数 -1 ,此时复制出来的shared_ptr 引用计数变为 1 ; 2、不管是基础类型还是 对象 ,作为局部变量时都不可以按引用返回,原因(引用的概念); 3、 …
C++动态指针之shared_ptr - 知乎
C++ 11引入了智能指针shared_ptr, unique_ptr 以及weak_ptr,三种智能指针都定义在memory头文件中。 本文将主要介绍shared_ptr的使用。 1.Shared_ptr类:Shard_ptr:类似于vector,智能指针也是模板,所以在创建智…