cpp / latest / atomic / atomic_load.html /

std::atomic_load, std::atomic_load_explicit

Defined in header <atomic>
(1) (since 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) (since 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) Atomically obtains the value pointed to by obj as if by obj->load()
2) Atomically obtains the value pointed to by obj as if by obj->load(order)

Parameters

obj - pointer to the atomic object to modify
order - the memory synchronization ordering for this operation: only std::memory_order_relaxed, std::memory_order_consume, std::memory_order_acquire and std::memory_order_seq_cst are permitted.

Return value

The value that is held by the atomic object pointed to by obj.

See also

atomically obtains the value of the atomic object
(public member function of std::atomic<T>)
(C++11)(C++11)
atomically replaces the value of the atomic object with a non-atomic argument
(function template)
(C++11)
defines memory ordering constraints for the given atomic operation
(enum)
(deprecated in C++20)
specializes atomic operations for std::shared_ptr
(function template)
C documentation for atomic_load, atomic_load_explicit

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/atomic/atomic_load