std::atomic<T>:: atomic

From cppreference.com
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe Reclamation
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.
This overload participates in overload resolution only if std:: is_default_constructible_v < T > is true .
(since C++20)
2) Initializes the underlying object with desired . The initialization is not atomic.
3) Atomic variables are not CopyConstructible .

Parameters

desired - value to initialize with

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)

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 4169 C++20 std::is_default_constructible_v could report false positive the default constructor is constrained