Namespaces
Variants

std:: atomic_init

From cppreference.net
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
atomic_init
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
Определено в заголовочном файле <atomic>
template < class T >

void atomic_init
( std:: atomic < T > * obj,

typename std:: atomic < T > :: value_type desired ) noexcept ;
(1) (начиная с C++11)
(устарело в C++20)
template < class T >

void atomic_init
( volatile std:: atomic < T > * obj,

typename std:: atomic < T > :: value_type desired ) noexcept ;
(2) (начиная с C++11)
(устарело в C++20)

Инициализирует объект атомарной переменной, созданный конструктором по умолчанию, obj значением desired . Функция не является атомарной: конкурентный доступ из другого потока, даже через атомарную операцию, является состоянием гонки данных.

Если obj не был создан конструктором по умолчанию, или эта функция вызывается дважды для одного и того же obj , поведение не определено.

Содержание

Параметры

obj - указатель на атомарный объект для инициализации
desired - значение для инициализации атомарного объекта

Возвращаемое значение

(нет)

Примечания

Эта функция предоставляется для совместимости с C. Если совместимость не требуется, std::atomic может быть инициализирован через свои нестандартные конструкторы.

Пример

Отчёты о дефектах

Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
P0558R1 C++11 требовалось точное соответствие типов, потому что
T выводился из нескольких аргументов
T выводится только
из obj

Смотрите также

(C++11) (устарело в C++20)
константная инициализация атомарной переменной со статической продолжительностью хранения
(функциональный макрос)
конструирует атомарный объект
(публичная функция-член std::atomic<T> )
Документация C для atomic_init