Udostępnij za pośrednictwem


atomic — Struktura

Opisuje obiekt, który wykonuje niepodzielne operacje na przechowywanej wartości typu Ty.

template <class Ty>
struct atomic;

Elementy członkowskie

Konstruktory publiczne

Nazwa

Opis

atomic::atomic — Konstruktor

Tworzy anatomiczny obiekt.

Operatory publiczne

Nazwa

Opis

atomic::operator Ty — Operator

Odczytuje i zwraca przechowywaną wartość. (atomic::load — Metoda)

atomic::operator= — Operator

Używa określonej wartości w celu zastąpienia przechowywanej wartości. (atomic::store — Metoda)

atomic::operator++ — Operator

Zwiększa przechowywaną wartość .Używane tylko przez liczbę całkowitą i wskaźnik specjalizacji.

atomic::operator+= — Operator

Dodaje określoną wartość do przechowywanej wartości.Używane tylko przez liczbę całkowitą i wskaźnik specjalizacji.

atomic::operator-- — Operator

Dekrementuje przechowywaną wartość .Używane tylko przez liczbę całkowitą i wskaźnik specjalizacji.

atomic::operator-= — Operator

Obejmuje określoną wartość z przechowywanej wartości.Używane tylko przez liczbę całkowitą i wskaźnik specjalizacji.

atomic::operator&= — Operator

Wykonuje logiczny and na określoną wartość i przechowywana wartość .Używane tylko przez liczbę całkowitą specjalizacji.

atomic::operator|= — Operator

Wykonuje bitowe or na określoną wartość i przechowywaną wartość .Używane tylko przez liczbę całkowitą specjalizacji.

atomic::operator^= — Operator

Wykonuje bitowe exclusive or na określoną wartość i przechowywaną wartość .Używane tylko przez liczbę całkowitą specjalizacji.

Metody publiczne

Nazwa

Opis

atomic::compare_exchange_strong — Metoda

Wykonuje atomic_compare_and_exchange operację na this i zwraca wynik.

atomic::compare_exchange_weak — Metoda

Wykonuje weak_atomic_compare_and_exchange operację na this i zwraca wynik.

atomic::fetch_add — Metoda

Dodaje określoną wartość do przechowywanej wartości.

atomic::fetch_and — Metoda

Wykonuje logiczny and na określoną wartość i przechowywana wartość .

atomic::fetch_or — Metoda

Wykonuje bitowe or na określoną wartość i przechowywaną wartość .

atomic::fetch_sub — Metoda

Obejmuje określoną wartość z przechowywanej wartości.

atomic::fetch_xor — Metoda

Wykonuje bitowe exclusive or na określoną wartość i przechowywaną wartość .

atomic::is_lock_free — Metoda

Operacje czy niepodzielne operacje this są wolne od blokady.Typ niepodzielny nie ma blokady jeśli żadne operacje niepodzielne tego typu nie używają blokady.

atomic::load — Metoda

Odczytuje i zwraca przechowywaną wartość.

atomic::store — Metoda

Używa określonej wartości w celu zastąpienia przechowywanej wartości.

Uwagi

Typ Ty musi mieć możliwość kopiowania.Oznacza to, że za pomocą memcpy do skopiowania jego bajtów musi mieć prawidłowy Ty obiekt, który jest równy oryginalnemu obiektowi.compare_exchange_weak i compare_exchange_strong funkcje członkowskie korzystają z memcmp do określenia, czy dwie Ty wartości są równe.Te funkcje nie będą używać Ty-definicji operator==.Funkcji elementów członkowskich z atomic używa memcpy do kopiowania wartości typu Ty.

Częściowa specjalizacja, atomic<Ty *>, istnieje dla wszystkich typów wskaźnika.Specjalizacja umożliwia dodanie wartości wskaźnika zarządzanych przesunięcia lub odejmowania przesunięcie od niego.Operacje arytmetyczne przyjmują argument typu ptrdiff_t i dostosowują ten argument, zgodnie z wielkością Ty, aby był spójny ze zwykłymi arytmetycznymi adresami.

Dla każdego integralnego typu istnieje specjalizacja, z wyjątkiem bool.Każda specjalizacja zawiera bogaty zestaw metod dla niepodzielnych operacji arytmetycznych i logicznych.

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>

Integralne specjalizacje są uzyskiwane z odpowiednich typów **atomic_**integral.Na przykład atomic<unsigned int> pochodzi z atomic_uint.

Wymagania

Nagłówek: niepodzielny

Przestrzeń nazw: std

Zobacz też

Informacje

<atomic>

Inne zasoby

Pliki nagłówkowe standardowej biblioteki języka C++