线程安全的原子智能指针封装类 更多...
#include <AtomicSharedPtr.h>
Public 成员函数 | |
template<typename... Args> | |
AtomicSharedPtr (Args &&... args) | |
构造函数,完美转发参数到shared_ptr | |
AtomicSharedPtr (AtomicSharedPtr &&)=delete | |
禁用移动构造函数 | |
AtomicSharedPtr (const AtomicSharedPtr &rhs) | |
拷贝构造函数 | |
bool | compare_exchange (std::shared_ptr< T > *expected, std::shared_ptr< T > desired) noexcept |
原子比较并交换操作 | |
std::shared_ptr< T > | load () const noexcept |
原子加载当前指针值 | |
AtomicSharedPtr & | operator= (AtomicSharedPtr &&)=delete |
禁用移动赋值运算符 | |
AtomicSharedPtr & | operator= (const AtomicSharedPtr &rhs) noexcept |
拷贝赋值运算符 | |
AtomicSharedPtr & | operator= (std::shared_ptr< T > ptr) noexcept |
智能指针赋值运算符 | |
void | reset (std::shared_ptr< T > ptr=nullptr) noexcept |
重置指针值 | |
void | store (std::shared_ptr< T > ptr) noexcept |
原子存储新的智能指针 | |
Private 属性 | |
std::shared_ptr< T > | _ptr |
内部存储的智能指针 | |
线程安全的原子智能指针封装类
AtomicSharedPtr提供了一个简单的原子操作智能指针实现,支持线程安全的共享指针操作。 使用release-acquire内存序来确保线程间的正确同步:
T | 指针指向的数据类型 |
在文件 AtomicSharedPtr.h 第 26 行定义.
|
inlineexplicit |
|
inline |
|
delete |
禁用移动构造函数
|
inlinenoexcept |
|
inlinenoexcept |
原子加载当前指针值
在文件 AtomicSharedPtr.h 第 79 行定义.
引用了 carla::AtomicSharedPtr< T >::_ptr.
被这些函数引用 carla::client::detail::AtomicList< T >::Load() , 以及 carla::client::detail::Load().
|
delete |
禁用移动赋值运算符
|
inlinenoexcept |
拷贝赋值运算符
rhs | 源对象 |
在文件 AtomicSharedPtr.h 第 123 行定义.
引用了 carla::AtomicSharedPtr< T >::store().
|
inlinenoexcept |
智能指针赋值运算符
ptr | 要赋值的智能指针 |
在文件 AtomicSharedPtr.h 第 113 行定义.
引用了 carla::AtomicSharedPtr< T >::store().
|
inlinenoexcept |
重置指针值
ptr | 新的指针值,默认为nullptr |
在文件 AtomicSharedPtr.h 第 71 行定义.
引用了 carla::AtomicSharedPtr< T >::store().
|
inlinenoexcept |
原子存储新的智能指针
ptr | 要存储的新指针 |
在文件 AtomicSharedPtr.h 第 59 行定义.
引用了 carla::AtomicSharedPtr< T >::_ptr.
被这些函数引用 carla::AtomicSharedPtr< T >::operator=(), carla::AtomicSharedPtr< T >::operator=() , 以及 carla::AtomicSharedPtr< T >::reset().
|
private |
内部存储的智能指针
在文件 AtomicSharedPtr.h 第 132 行定义.
被这些函数引用 carla::AtomicSharedPtr< T >::compare_exchange(), carla::AtomicSharedPtr< T >::load() , 以及 carla::AtomicSharedPtr< T >::store().