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

atomic::atomic – konstruktor

Sestaví atomický objekt.

Veřejné operátory

Name

Popis

atomic::operator Ty – operátor

Přečte a vrátí uloženou hodnotu. (atomic::load – metoda)

atomic::operator= – operátor

Používá zadanou hodnotu k nahrazení uložené hodnoty. (atomic::store – metoda)

atomic::operator++ – operátor

Zvýší uloženou hodnotu.Používá se pouze specializacemi integrálu a ukazatele.

atomic::operator+= – operátor

Přidá zadanou hodnotu k uložené hodnotě.Používá se pouze specializacemi integrálu a ukazatele.

atomic::operator-- – operátor

Sníží uloženou hodnotu.Používá se pouze specializacemi integrálu a ukazatele.

atomic::operator-= – operátor

Odečte zadanou hodnotu od uložené hodnoty.Používá se pouze specializacemi integrálu a ukazatele.

atomic::operator&= – operátor

Provádí logické bitové and na zadanou hodnotu a uloženou hodnotu.Používá se pouze specializacemi integrálu.

atomic::operator|= – operátor

Provádí logické bitové or na zadanou hodnotu a uloženou hodnotu.Používá se pouze specializacemi integrálu.

atomic::operator^= – operátor

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

atomic::compare_exchange_strong – metoda

Provádí operaci atomic_compare_and_exchange na this a vrací výsledek.

atomic::compare_exchange_weak – metoda

Provádí operaci weak_atomic_compare_and_exchange na this a vrací výsledek.

atomic::fetch_add – metoda

Přidá zadanou hodnotu k uložené hodnotě.

atomic::fetch_and – metoda

Provádí logické bitové and na zadanou hodnotu a uloženou hodnotu.

atomic::fetch_or – metoda

Provádí logické bitové or na zadanou hodnotu a uloženou hodnotu.

atomic::fetch_sub – metoda

Odečte zadanou hodnotu od uložené hodnoty.

atomic::fetch_xor – metoda

Provádí logické bitové exclusive or na zadanou hodnotu a uloženou hodnotu.

atomic::is_lock_free – metoda

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.

atomic::load – metoda

Přečte a vrátí uloženou hodnotu.

atomic::store – metoda

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

Viz také

Referenční dokumentace

<atomic>

Další zdroje

Standardní knihovna C++ – hlavičkové soubory