Значение *this
непосредственно перед сохранением.
Нет.
Примечание. Это атомарная операция чтения-модификации-записи для ячейки памяти, содержащей *this
.
STD::ATOMIC_FETCH_SUB
, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно читает значение из экземпляра atomic
и заменяет его разностью этого значения и аргумента i
, применяя стандартные правила арифметики указателей.
T* atomic_fetch_sub(
volatile atomic
T* atomic_fetch_sub(atomic
return p->fetch_sub(i);
STD::ATOMIC_FETCH_SUB_EXPLICIT
, ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно читает значение из экземпляра atomic
и заменяет его разностью этого значения и аргумента i
, применяя стандартные правила арифметики указателей.
T* atomic_fetch_sub_explicit(
volatile atomic
noexcept;
T* atomic_fetch_sub_explicit(
atomic
return p->fetch_sub(i, order);
STD::ATOMIC
, ОПЕРАТОР ПРЕДИНКРЕМЕНТА
Атомарно инкрементирует значение, хранящееся в *this
, применяя стандартные правила арифметики указателей, и возвращает новое значение.
T* operator++() volatile noexcept;
T* operator++() noexcept;
return this->fetch_add(1) + 1;
STD::ATOMIC
, ОПЕРАТОР ПОСТИНКРЕМЕНТА
Атомарно инкрементирует значение, хранящееся в *this
, и возвращает старое значение.
T* operator++(int) volatile noexcept;
T* operator++(int) noexcept;
return this->fetch_add(1);
STD::ATOMIC
, ОПЕРАТОР ПРЕДЕКРЕМЕНТА
Атомарно декрементирует значение, хранящееся в *this
, применяя стандартные правила арифметики указателей, и возвращает новое значение.
T* operator--() volatile noexcept;
T* operator--() noexcept;
return this->fetch_sub(1) - 1;
STD::ATOMIC
, ОПЕРАТОР ПОСТДЕКРЕМЕНТА
Атомарно декрементирует значение, хранящееся в *this
, применяя стандартные правила арифметики указателей, и возвращает старое значение.
T* operator--(int) volatile noexcept;
T* operator--(int) noexcept;
return this->fetch_sub(1);
STD::ATOMIC
, СОСТАВНОЙ ОПЕРАТОР ПРИСВАИВАНИЯ
Атомарно складывает значение аргумента со значением, хранящимся в *this
, применяя стандартные правила арифметики указателей, и возвращает новое значение.
T* operator+=(ptrdiff_t i) volatile noexcept;
T* operator+=(ptrdiff_t i) noexcept;
return this->fetch_add(i) + i;
STD::ATOMIC
, СОСТАВНОЙ ОПЕРАТОР ПРИСВАИВАНИЯ
Атомарно вычитает значение аргумента из значения, хранящегося в *this
, применяя стандартные правила арифметики указателей, и возвращает новое значение.
T* operator-=(ptrdiff_t i) volatile noexcept;
T* operator-=(ptrdiff_t i) noexcept;
return this->fetch_sub(i) - i;
D.4. Заголовок
В заголовке
объявлены средства для обработки результатов асинхронных операций, которые могли быть выполнены в другом потоке.
namespace std {
enum class future_status {
ready, timeout, deferred
};
enum class future_errc {
broken_promise,
future_already_retrieved,
promise_already_satisfied,
no_state
};
class future_error;