atomic – struktura
Popisuje objekt, který provádí atomické operace na uložené hodnotě typu Ty.
template <class Ty>
struct atomic;
Členy
Veřejné konstruktory
Name |
Popis |
---|---|
Sestaví atomický objekt. |
Veřejné operátory
Name |
Popis |
---|---|
Přečte a vrátí uloženou hodnotu. (atomic::load – metoda) |
|
Používá zadanou hodnotu k nahrazení uložené hodnoty. (atomic::store – metoda) |
|
Zvýší uloženou hodnotu.Používá se pouze specializacemi integrálu a ukazatele. |
|
Přidá zadanou hodnotu k uložené hodnotě.Používá se pouze specializacemi integrálu a ukazatele. |
|
Sníží uloženou hodnotu.Používá se pouze specializacemi integrálu a ukazatele. |
|
Odečte zadanou hodnotu od uložené hodnoty.Používá se pouze specializacemi integrálu a ukazatele. |
|
Provádí logické bitové and na zadanou hodnotu a uloženou hodnotu.Používá se pouze specializacemi integrálu. |
|
Provádí logické bitové or na zadanou hodnotu a uloženou hodnotu.Používá se pouze specializacemi integrálu. |
|
Provádí logické bitové exclusive or na zadanou hodnotu a uloženou hodnotu.Používá se pouze specializacemi integrálu. |
Veřejné metody
Name |
Popis |
---|---|
Provádí operaci atomic_compare_and_exchange na this a vrací výsledek. |
|
Provádí operaci weak_atomic_compare_and_exchange na this a vrací výsledek. |
|
Přidá zadanou hodnotu k uložené hodnotě. |
|
Provádí logické bitové and na zadanou hodnotu a uloženou hodnotu. |
|
Provádí logické bitové or na zadanou hodnotu a uloženou hodnotu. |
|
Odečte zadanou hodnotu od uložené hodnoty. |
|
Provádí logické bitové exclusive or na zadanou hodnotu a uloženou hodnotu. |
|
Určuje, zda jsou atomické operace na thisbez zámku.Atomický typ je bez zámku, pokud žádné atomické operace na daném typu nepoužívají zámky. |
|
Přečte a vrátí uloženou hodnotu. |
|
Používá zadanou hodnotu k nahrazení uložené hodnoty. |
Poznámky
Typ Ty musí být triviálně kopírovatelný.To znamená, že použití memcpy ke kopírování jeho bajtů musí vytvořit platný objekt Ty, který je při porovnání roven původnímu objektu.Členské funkce compare_exchange_weak a compare_exchange_strong používají memcmp k určení, zda jsou dvě hodnoty Ty rovné.Tyto funkce nepoužijí operator== definovaný Ty.Členské funkce atomic používají memcpy ke kopírování hodnot typu Ty.
Částečná specializace, atomic<Ty *>, existuje pro všechny typy ukazatelů.Specializace umožňuje přidání posunu k hodnotě spravovaného ukazatele nebo odečtení posunu od něj.Aritmetické operace přijímají argument typu ptrdiff_t a upravují tento argument v závislosti na velikosti Ty, aby byl v souladu s běžnou aritmetikou adres.
Specializace existuje pro každý integrální typ s výjimkou bool.Jednotlivé specializace poskytují bohatou sadu metod pro atomické aritmetické a logické operace.
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> |
Integrální specializace jsou odvozeny z odpovídajících typů **atomic_**integral.Například atomic<unsigned int> je odvozen od atomic_uint.
Požadavky
Záhlaví: atomic
Obor názvů: std