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)

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

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

Параметры

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

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

(нет)

Примечания

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

Пример

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

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

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

См. также

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

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

Spec-Zone.ru

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