std::atomic_load, std::atomic_load_explicit

From cppreference.com
< cpp‎ | atomic
 
 
Concurrency support library
Threads
(C++11)
(C++20)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Free functions for atomic operations
atomic_loadatomic_load_explicit
(C++11)(C++11)
Free functions for atomic flags
Memory ordering
Mutual exclusion
(C++11)
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
 
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>)
atomically replaces the value of the atomic object with a non-atomic argument
(function template)
defines memory ordering constraints for the given atomic operation
(enum)
specializes atomic operations for std::shared_ptr
(function template)