std::bind的用法 : 给一个函数指针,加上固定的参数(不固定的参数用std::placeholders::_1、std::placeholders::_2来表示)
std::shared_ptr的用法:new出来的裸指针直接交给shared_ptr的构造函数,则后续无论怎么在多个shared_ptr之间共享,最后都会被析构(所有shared_ptr都reset了他或者所有shared_ptr对象自身都析构后)
默认reseth会调delete p; 如果传入的是数组(new int[100]),则要传入delete[]函数:ptr_.reset(data_array, [](V* data){ delete [] data; });
own的还是ptr_这个shared_ptr,加减释放用它,但是使用的是data() + begin, 用于指向数组中的非头部元素,但是释放仍然和整个数组同进退:ret.ptr_ = std::shared_ptr<V>(ptr_, data() + begin); (SArray<V> segment里用到)
unique_ptr, shared_ptr, weak_ptr的区别:
unique_ptr不能复制给别的,要么move控制权,要么主动或被动析构,即只有一个指针指向同一对象时适用;

本文深入探讨C++中的高级特性,如std::bind、std::shared_ptr、unique_ptr等智能指针的使用技巧,以及原子变量和锁机制的最佳实践。解析C++11新增功能,包括原子操作、条件等待和 chrono 计时库的应用,同时揭示 False Sharing 等性能陷阱。
最低0.47元/天 解锁文章
680

被折叠的 条评论
为什么被折叠?



