Структура atomic
Описывает объект, выполняющий атомарных операций, хранящиеся в значение типа Ty.
template <class Ty>
struct atomic;
Члены
Открытые конструкторы
Name |
Описание |
---|---|
Построение атомарный объект. |
Открытые операторы
Name |
Описание |
---|---|
Считывает и возвращает сохраненный значение. (Метод atomic::load) |
|
Использует указанное значение, чтобы заменить, хранящееся значение. (Метод atomic::store) |
|
Увеличивает хранящееся значение. Используется только специализациями и всей указателя. |
|
Добавляет указанное хранящееся значение. Используется только специализациями и всей указателя. |
|
Уменьшает хранящееся значение. Используется только специализациями и всей указателя. |
|
Вычитает указанное значение из сохраненного значения. Используется только специализациями и всей указателя. |
|
Выполняет операцию побитового and на заданном значении и хранимого значения. Используется только целочисленными специализациями. |
|
Выполняет операцию побитового or на заданном значении и хранимого значения. Используется только целочисленными специализациями. |
|
Выполняет операцию побитового exclusive or на заданном значении и хранимого значения. Используется только целочисленными специализациями. |
Открытые методы
Name |
Описание |
---|---|
Выполняет операцию atomic_compare_and_exchange на this и возвращает результат. |
|
Выполняет операцию weak_atomic_compare_and_exchange на this и возвращает результат. |
|
Добавляет указанное хранящееся значение. |
|
Выполняет операцию побитового and на заданном значении и хранимого значения. |
|
Выполняет операцию побитового or на заданном значении и хранимого значения. |
|
Вычитает указанное значение из сохраненного значения. |
|
Выполняет операцию побитового exclusive or на заданном значении и хранимого значения. |
|
Определяет, является ли атомарных операций на thisблокировка не. Атомарный тип блокировка не при отсутствии атомарные операции с этими использовании типа не блокируют. |
|
Считывает и возвращает сохраненный значение. |
|
Использует указанное значение, чтобы заменить, хранящееся значение. |
Заметки
Тип 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