Поделиться через


Структура atomic

Описывает объект, выполняющий атомарных операций, хранящиеся в значение типа Ty.

template <class Ty>
struct atomic;

Члены

Открытые конструкторы

Name

Описание

Конструктор atomic::atomic

Построение атомарный объект.

Открытые операторы

Name

Описание

Оператор atomic::operator Ty

Считывает и возвращает сохраненный значение. (Метод atomic::load)

Оператор atomic::operator=

Использует указанное значение, чтобы заменить, хранящееся значение. (Метод atomic::store)

Оператор atomic::operator++

Увеличивает хранящееся значение. Используется только специализациями и всей указателя.

Оператор atomic::operator+=

Добавляет указанное хранящееся значение. Используется только специализациями и всей указателя.

Оператор atomic::operator--

Уменьшает хранящееся значение. Используется только специализациями и всей указателя.

Оператор atomic::operator-=

Вычитает указанное значение из сохраненного значения. Используется только специализациями и всей указателя.

Оператор atomic::operator&=

Выполняет операцию побитового and на заданном значении и хранимого значения. Используется только целочисленными специализациями.

Оператор atomic::operator|=

Выполняет операцию побитового or на заданном значении и хранимого значения. Используется только целочисленными специализациями.

Оператор atomic::operator^=

Выполняет операцию побитового exclusive or на заданном значении и хранимого значения. Используется только целочисленными специализациями.

Открытые методы

Name

Описание

Метод atomic::compare_exchange_strong

Выполняет операцию atomic_compare_and_exchange на this и возвращает результат.

Метод atomic::compare_exchange_weak

Выполняет операцию weak_atomic_compare_and_exchange на this и возвращает результат.

Метод atomic::fetch_add

Добавляет указанное хранящееся значение.

Метод atomic::fetch_and

Выполняет операцию побитового and на заданном значении и хранимого значения.

Метод atomic::fetch_or

Выполняет операцию побитового or на заданном значении и хранимого значения.

Метод atomic::fetch_sub

Вычитает указанное значение из сохраненного значения.

Метод atomic::fetch_xor

Выполняет операцию побитового exclusive or на заданном значении и хранимого значения.

Метод atomic::is_lock_free

Определяет, является ли атомарных операций на thisблокировка не. Атомарный тип блокировка не при отсутствии атомарные операции с этими использовании типа не блокируют.

Метод atomic::load

Считывает и возвращает сохраненный значение.

Метод atomic::store

Использует указанное значение, чтобы заменить, хранящееся значение.

Заметки

Тип Ty должен быть тривиальным копируемым. То есть, используя memcpy, чтобы скопировать его в байтах должен создать допустимого объекта Ty, сравнивает равенство в исходный объект. Функции-члены compare_exchange_weak и compare_exchange_strong используют memcmp, чтобы определить, является ли значения Ty равны 2. Эти функции не используется Ty- указанное operator==. Функции-члены atomic используют memcpy для копирования значений типа Ty.

Частично специализация, atomic<Ty *>, существует для всех типов указателя. Специализация включает добавление смещения в управляемый указатель значение или вычитание смещения из нее. Арифметические операции принимают аргумент типа ptrdiff_t и настройка этот аргумент в соответствии с размером Ty, чтобы быть согласованными с обычной арифметической операции адреса.

Специализация существует для каждого целого типа, за исключением bool. Каждая специализация предоставляет большой набор методов для атомарной арифметической операции и логических операций.

atomic<char>

atomic<signed char>

atomic<unsigned char>

atomic<char16_t>

atomic<char32_t>

atomic<wchar_t>

atomic<short>

atomic<unsigned short>

atomic<int>

atomic<unsigned int>

atomic<long>

atomic<unsigned long>

atomic<long long>

atomic<unsigned long long>

Целочисленные специализации являются производными от соответствующих типов **atomic_**integral. Например, atomic<unsigned int> является производным от atomic_uint.

Требования

Заголовок: atomic

Пространство имен: std

См. также

Ссылки

<atomic>

Другие ресурсы

Файлы заголовков стандартных библиотек C++