# std::atomic_load, std::atomic_load_explicit

< cpp‎ | atomic

定义于头文件 `<atomic>` |  |
| (1) | (C++11 起)
template< class T > T atomic_load( const std::atomic<T>* obj ) noexcept; |  |
template< class T > T atomic_load( const volatile std::atomic<T>* obj ) noexcept; |  |
| (2) | (C++11 起)
template< class T > T atomic_load_explicit( const std::atomic<T>* obj, std::memory_order order ) noexcept; |  |
template< class T > T atomic_load_explicit( const volatile std::atomic<T>* obj, std::memory_order order ) noexcept; |  |

1) 如同用 obj->load() 原子地获得 `obj` 所指向的值。
2) 如同用 obj->load(order) 原子地获得 `obj` 所指向的值。

### 参数

obj | - | 指向要加载的原子对象的指针
order | - | 此操作所用的内存同步顺序：只容许 std::memory_order_relaxed 、 std::memory_order_consume 、 std::memory_order_acquire 和 std::memory_order_seq_cst 。

### 返回值

`obj` 所指向的原子对象所保有的值。

### 参阅

load | 原子地获得原子对象的值 (`std::atomic<T>` 的公开成员函数)
atomic_store atomic_store_explicit (C++11)(C++11) | 原子地以非原子实参替换原子对象的值 (函数模板)
memory_order (C++11) | 为给定的原子操作定义内存顺序约束 (枚举)

std::atomic_load(std::shared_ptr) std::atomic_load_explicit(std::shared_ptr) (C++20 中弃用) | 为 std::shared_ptr 特化原子操作 (函数模板)