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 |
---|---|
Tworzy anatomiczny obiekt. |
Operatory publiczne
Nazwa |
Opis |
---|---|
Odczytuje i zwraca przechowywaną wartość. (atomic::load — Metoda) |
|
Używa określonej wartości w celu zastąpienia przechowywanej wartości. (atomic::store — Metoda) |
|
Zwiększa przechowywaną wartość .Używane tylko przez liczbę całkowitą i wskaźnik specjalizacji. |
|
Dodaje określoną wartość do przechowywanej wartości.Używane tylko przez liczbę całkowitą i wskaźnik specjalizacji. |
|
Dekrementuje przechowywaną wartość .Używane tylko przez liczbę całkowitą i wskaźnik specjalizacji. |
|
Obejmuje określoną wartość z przechowywanej wartości.Używane tylko przez liczbę całkowitą i wskaźnik specjalizacji. |
|
Wykonuje logiczny and na określoną wartość i przechowywana wartość .Używane tylko przez liczbę całkowitą specjalizacji. |
|
Wykonuje bitowe or na określoną wartość i przechowywaną wartość .Używane tylko przez liczbę całkowitą specjalizacji. |
|
Wykonuje bitowe exclusive or na określoną wartość i przechowywaną wartość .Używane tylko przez liczbę całkowitą specjalizacji. |
Metody publiczne
Nazwa |
Opis |
---|---|
Wykonuje atomic_compare_and_exchange operację na this i zwraca wynik. |
|
Wykonuje weak_atomic_compare_and_exchange operację na this i zwraca wynik. |
|
Dodaje określoną wartość do przechowywanej wartości. |
|
Wykonuje logiczny and na określoną wartość i przechowywana wartość . |
|
Wykonuje bitowe or na określoną wartość i przechowywaną wartość . |
|
Obejmuje określoną wartość z przechowywanej wartości. |
|
Wykonuje bitowe exclusive or na określoną wartość i przechowywaną wartość . |
|
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. |
|
Odczytuje i zwraca przechowywaną wartość. |
|
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