Namespaces
Variants
Views
Actions

std::atomic<T>::atomic

From cppreference.com
< cpp‎ | atomic‎ | atomic
 
 
Concurrency support library
Threads
(C++11)
(C++20)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Mutual exclusion
(C++11)
(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)
Safe Reclamation
(C++26)
(C++26)
Hazard Pointers

Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Memory ordering
Free functions for atomic operations
Free functions for atomic flags
 
 
(1)
atomic() noexcept = default;
(since C++11)
(until C++20)
constexpr atomic() noexcept(std::is_nothrow_default_constructible_v<T>);
(since C++20)
constexpr atomic( T desired ) noexcept;
(2) (since C++11)
atomic( const atomic& ) = delete;
(3) (since C++11)

Constructs a new atomic variable.

1) The default constructor is trivial: no initialization takes place other than zero initialization of static and thread-local objects.
std::atomic_init may be used to complete initialization.
(until C++20)
1) Value-initializes the underlying object (i.e. with T()). The initialization is not atomic.
The program is ill-formed if std::is_default_constructible_v<T> is false.
(since C++20)
2) Initializes the underlying object with desired. The initialization is not atomic.
3) Atomic variables are not CopyConstructible.

[edit] Parameters

desired - value to initialize with

[edit] Notes

The default-initialized std::atomic<T> does not contain a T object, and its only valid uses are destruction and initialization by std::atomic_init, see LWG issue 2334.

(until C++20)