std::atomic_ref<T>:: is_lock_free
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
atomic_ref::is_lock_free
|
||||
|
(C++26)
|
||||
|
Operations for arithmetic types
(except
bool
and pointer-to-object)
|
||||
|
Operations for integral types
(except
bool
and pointer-to-object)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
| Constants | ||||
|
bool
is_lock_free
(
)
const
noexcept
;
|
(начиная с C++20) | |
Проверяет, являются ли атомарные операции над этим объектом свободными от блокировок.
Содержание |
Параметры
(нет)
Возвращаемое значение
true если атомарные операции над этим объектом являются lock-free, false в противном случае.
Примечания
Все атомарные типы, за исключением std::atomic_flag могут быть реализованы с использованием мьютексов или других блокирующих операций вместо lock-free атомарных инструкций процессора. Атомарным типам также разрешено быть иногда lock-free, например, если на данной архитектуре только выровненные обращения к памяти являются естественно атомарными, невыровненные объекты того же типа должны использовать блокировки.
Стандарт C++ рекомендует (но не требует), чтобы lock-free атомарные операции также были address-free, то есть пригодными для взаимодействия между процессами, использующими разделяемую память.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
[static]
|
указывает, что тип всегда является lock-free
(публичная статическая константа-член) |