Spec-Zone.ru › C++

std::atomic_init

Определён в заголовочном файле <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)

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

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

Параметры

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

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

(нет)

Примечания

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

Пример

Отчёты об ошибках

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

DR Применяется к Поведение согласно опубликованной версии Правильное поведение
P0558R1 C++11 требовалось точное совпадение типов, поскольку
T выводился из нескольких аргументов
T выводится только
из obj

См. также

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

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API