Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Nagłówek <atomic> zawiera następujące funkcje:
atomic_compare_exchange_strong
Wykonuje niepodzielne operacje porównywania i wymiany.
template <class Ty>
inline bool atomic_compare_exchange_strong(
volatile atomic<Ty>* Atom,
Ty* Exp,
Value) noexcept;
template <class Ty>
inline bool atomic_compare_exchange_strong(
atomic<Ty>* Atom,
Ty* Exp,
Ty Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu Ty.
Exp
Wskaźnik do wartości typu Ty.
Value
Wartość typu Ty.
Wartość zwracana
true jeśli wartości są równe, w przeciwnym razie false.
Uwagi
Ta metoda wykonuje niepodzielne operacje porównywania i wymiany przy użyciu niejawnych memory_order.memory_order_seq_cst argumentów. Aby uzyskać więcej informacji, zobacz atomic_compare_exchange_strong_explicit.
atomic_compare_exchange_strong_explicit
Wykonuje operację atomic compare and exchange .
template <class T>
inline bool atomic_compare_exchange_strong_explicit(
volatile atomic<Ty>* Atom,
Ty* Exp,
Ty Value,
memory_order Order1,
memory_order Order2) noexcept;
template <class Ty>
inline bool atomic_compare_exchange_strong_explicit(
atomic<Ty>* Atom,
Ty* Exp,
Ty Value,
memory_order Order1,
memory_order Order2) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu Ty.
Exp
Wskaźnik do wartości typu Ty.
Value
Wartość typu Ty.
Order1
Pierwszy memory_order argument.
Order2
Drugi memory_order argument. Wartość Order2 nie może być memory_order_release lub memory_order_acq_rel, nie może być silniejsza niż wartość Order1.
Wartość zwracana
true jeśli wartości są równe, w przeciwnym razie false.
Uwagi
Element atomic compare and exchange operation porównuje wartość przechowywaną w obiekcie wskazywaną przez Atom wartość wskazywaną przez wartość wskazywaną przez Expwartość . Jeśli wartości są równe, wartość przechowywana w obiekcie wskazywanym Atom przez element jest zastępowana Value za pomocą operacji read-modify-write i stosowania ograniczeń kolejności pamięci określonych przez Order1. Jeśli wartości nie są równe, operacja zastępuje wartość, która jest wskazywana Exp przez wartość przechowywaną w obiekcie wskazywaną przez Atom i stosuje ograniczenia kolejności pamięci określone przez Order2.
atomic_compare_exchange_weak
Wykonuje słabą operację porównywania niepodzielnego i wymiany .
template <class Ty>
inline bool atomic_compare_exchange_strong(
volatile atomic<Ty>* Atom,
Ty* Exp,
Ty Value) noexcept;
template <class Ty>
inline bool atomic_compare_exchange_strong(
atomic<Ty>* Atom,
Ty* Exp,
Ty Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu Ty.
Exp
Wskaźnik do wartości typu Ty.
Value
Wartość typu Ty.
Wartość zwracana
true jeśli wartości są równe, w przeciwnym razie false.
Uwagi
Ta metoda wykonuje słabą operację porównania niepodzielnego i wymiany, która ma niejawne memory_order.memory_order_seq_cst argumenty. Aby uzyskać więcej informacji, zobacz atomic_compare_exchange_weak_explicit.
atomic_compare_exchange_weak_explicit
Wykonuje słabą operację porównywania niepodzielnego i wymiany .
template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
volatile atomic<Ty>* Atom,
Ty* Exp,
Ty Value,
memory_order Order1,
memory_order Order2) noexcept;
template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
atomic<Ty>* Atom,
Ty* Exp,
Ty Value,
memory_order Order1,
memory_order Order2) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu Ty.
Exp
Wskaźnik do wartości typu Ty.
Value
Wartość typu Ty.
Order1
Pierwszy memory_order argument.
Order2
Drugi memory_order argument. Wartość Order2 nie może być memory_order_release wartością lub memory_order_acq_rel, ani nie może być silniejsza Order1niż wartość .
Wartość zwracana
true jeśli wartości są równe, w przeciwnym razie false.
Uwagi
Zarówno silne, jak i słabe smaki atomic compare and exchange operation gwarancji, że nie przechowują nowej wartości, jeśli oczekiwane i bieżące wartości nie są równe. Silny smak gwarantuje, że będzie przechowywać nową wartość, jeśli oczekiwane i bieżące wartości są równe. Słaby smak może czasami zwracać false i nie przechowywać nowej wartości, nawet jeśli bieżące i oczekiwane wartości są równe. Innymi słowy, funkcja zwróci falsewartość , ale późniejsze badanie oczekiwanej wartości może ujawnić, że nie uległa zmianie, a zatem powinna być porównywana jako równa.
atomic_exchange
Używa Value metody , aby zastąpić przechowywaną wartość Atom.
template <class T>
inline Ty atomic_exchange(volatile atomic<Ty>* _Atom, Ty Value) noexcept;
template <class Ty>
inline T atomic_exchange(atomic<Ty>* Atom, Ty Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu Ty.
Value
Wartość typu Ty.
Wartość zwracana
Przechowywana Atom wartość przed wymianą.
Uwagi
Funkcja atomic_exchange wykonuje operację read-modify-write w celu wymiany wartości przechowywanej w AtomValueprogramie za pomocą polecenia memory_order.memory_order_seq_cst.
atomic_exchange_explicit
Zamienia przechowywaną wartość elementu AtomValuena .
template <class Ty>
inline Ty atomic_exchange_explicit(
volatile atomic<Ty>* Atom,
Ty Value,
memory_order Order) noexcept;
template <class Ty>
inline Ty atomic_exchange_explicit(
atomic<Ty>* Atom,
Ty Value,
memory_order Order) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu Ty.
Value
Wartość typu Ty.
Order
Klasa memory_order.
Wartość zwracana
Przechowywana Atom wartość przed wymianą.
Uwagi
Funkcja atomic_exchange_explicit wykonuje operację read-modify-write w celu wymiany wartości przechowywanej w obiekcie w AtomValueramach ograniczeń pamięci określonych przez Orderprogram .
atomic_fetch_add
Dodaje wartość do istniejącej wartości przechowywanej atomic w obiekcie.
template <class T>
T* atomic_fetch_add(volatile atomic<T*>* Atom, ptrdiff_t Value) noexcept;
template <class T>
T* atomic_fetch_add(atomic<T*>* Atom, ptrdiff_t Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wskaźnik, aby wpisać T.
Value
Wartość typu ptrdiff_t.
Wartość zwracana
Wartość wskaźnika zawartego atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_add wykonuje operację read-modify-write w celu niepodzielnego dodania Value do przechowywanej wartości w Atomelemecie memory_order.memory_order_seq_cst , przy użyciu ograniczenia.
Gdy typ niepodzielnego to atomic_address, ma typValue, ptrdiff_t a operacja traktuje przechowywany wskaźnik jako char *.
Ta operacja jest również przeciążona dla typów całkowitych:
integral atomic_fetch_add(volatile atomic-integral* Atom, integral Value) noexcept;
integral atomic_fetch_add(atomic-integral* Atom, integral Value) noexcept;
atomic_fetch_add_explicit
Dodaje wartość do istniejącej wartości przechowywanej atomic w obiekcie.
template <class T>
T* atomic_fetch_add_explicit(
volatile atomic<T*>* Atom,
ptrdiff_t Value,
memory_order Order) noexcept;
template <class T>
T* atomic_fetch_add_explicit(
atomic<T*>* Atom,
ptrdiff_t Value,
memory_order Order) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wskaźnik, aby wpisać T.
Value
Wartość typu ptrdiff_t.
Wartość zwracana
Wartość wskaźnika zawartego atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_add_explicit wykonuje operację read-modify-write w celu niepodzielnego dodania Value do przechowywanej wartości w programie w Atomramach memory_order ograniczeń określonych przez Orderprogram .
Gdy typ niepodzielnego to atomic_address, ma typValue, ptrdiff_t a operacja traktuje przechowywany wskaźnik jako char *.
Ta operacja jest również przeciążona dla typów całkowitych:
integral atomic_fetch_add_explicit(
volatile atomic-integral* Atom,
integral Value,
memory_order Order) noexcept;
integral atomic_fetch_add_explicit(
atomic-integral* Atom,
integral Value,
memory_order Order) noexcept;
atomic_fetch_and
Wykonuje bitowo & na wartości i istniejącej wartości przechowywanej atomic w obiekcie.
template <class T>
inline T atomic_fetch_and(volatile atomic<T>* Atom, T Value) noexcept;
template <class T>
inline T atomic_fetch_and(volatile atomic<T>* Atom, T Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu T.
Value
Wartość typu T.
Wartość zwracana
Wartość zawarta atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_and wykonuje operację read-modify-write, aby zastąpić przechowywaną wartość z bitową Atom& wartością Value i bieżącą wartością przechowywaną w Atomelemencie memory_order.memory_order_seq_cst , przy użyciu ograniczenia.
atomic_fetch_and_explicit
Wykonuje bitową & wartość i istniejącą wartość przechowywaną atomic w obiekcie.
template <class T>
inline T atomic_fetch_and_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
template <class T>
inline T atomic_fetch_and_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu T.
Value
Wartość typu T.
Order
Klasa memory_order.
Wartość zwracana
Wartość zawarta atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_and_explicit wykonuje operację read-modify-write, aby zastąpić przechowywaną wartość z bitową Atom& wartością Value i bieżącą wartością przechowywaną w elemencie w Atomramach ograniczeń pamięci określonych przez Order.
atomic_fetch_or
Wykonuje bitowo or na wartości i istniejącej wartości przechowywanej atomic w obiekcie.
template <class T>
inline T atomic_fetch_or (volatile atomic<T>* Atom, T Value) noexcept;
template <class T>
inline T atomic_fetch_or (volatile atomic<T>* Atom, T Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu T.
Value
Wartość typu T.
Wartość zwracana
Wartość zawarta atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_or wykonuje operację read-modify-write, aby zastąpić przechowywaną wartość Atom parametru bitowo orValue wartością i bieżącą wartością przechowywaną w Atomelemencie memory_order.memory_order_seq_cst, przy użyciu elementu .
atomic_fetch_or_explicit
Wykonuje bitowo or na wartości i istniejącej wartości przechowywanej atomic w obiekcie.
template <class T>
inline T atomic_fetch_or_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
template <class T>
inline T atomic_fetch_or_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu T.
Value
Wartość typu T.
Order
Klasa memory_order.
Wartość zwracana
Wartość zawarta atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_or_explicit wykonuje operację read-modify-write, aby zastąpić przechowywaną wartość z bitową Atomor wartością Value i bieżącą wartością przechowywaną w elemencie , Atomw memory_order ramach ograniczeń określonych przez Order.
atomic_fetch_sub
Odejmuje wartość z istniejącej wartości przechowywanej atomic w obiekcie.
template <class T>
T* atomic_fetch_sub(
volatile atomic<T*>* Atom,
ptrdiff_t Value) noexcept;
template <class T>
T* atomic_fetch_sub(
atomic<T*>* Atom,
ptrdiff_t Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wskaźnik, aby wpisać T.
Value
Wartość typu ptrdiff_t.
Wartość zwracana
Wartość wskaźnika zawartego atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_sub wykonuje operację read-modify-write w celu niepodzielnego odejmowania Value od przechowywanej wartości w Atomelemecie memory_order.memory_order_seq_cst , przy użyciu ograniczenia.
Gdy typ niepodzielnego to atomic_address, ma typValue, ptrdiff_t a operacja traktuje przechowywany wskaźnik jako char *.
Ta operacja jest również przeciążona dla typów całkowitych:
integral atomic_fetch_sub(volatile atomic-integral* Atom, integral Value) noexcept;
integral atomic_fetch_sub(atomic-integral* Atom, integral Value) noexcept;
atomic_fetch_sub_explicit
Odejmuje wartość z istniejącej wartości przechowywanej atomic w obiekcie.
template <class T>
T* atomic_fetch_sub_explicit(
volatile atomic<T*>* Atom,
ptrdiff_t Value,
memory_order Order) noexcept;
template <class T>
T* atomic_fetch_sub_explicit(
atomic<T*>* Atom,
ptrdiff_t Value, memory_order Order) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wskaźnik, aby wpisać T.
Value
Wartość typu ptrdiff_t.
Wartość zwracana
Wartość wskaźnika zawartego atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_sub_explicit wykonuje operację read-modify-write w celu niepodzielnego odejmowania Value z przechowywanej wartości w programie w Atomramach memory_order ograniczeń określonych przez Orderprogram .
Gdy typ niepodzielnego to atomic_address, ma typValue, ptrdiff_t a operacja traktuje przechowywany wskaźnik jako char *.
Ta operacja jest również przeciążona dla typów całkowitych:
integral atomic_fetch_sub_explicit(
volatile atomic-integral* Atom,
integral Value,
memory_order Order) noexcept;
integral atomic_fetch_sub_explicit(
atomic-integral* Atom,
integral Value,
memory_order Order) noexcept;
atomic_fetch_xor
Wykonuje bitowo exclusive or na wartości i istniejącej wartości przechowywanej atomic w obiekcie.
template <class T>
inline T atomic_fetch_xor(volatile atomic<T>* Atom, T Value) noexcept;
template <class T>
inline T atomic_fetch_xor(volatile atomic<T>* Atom, T Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu T.
Value
Wartość typu T.
Wartość zwracana
Wartość zawarta atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_xor wykonuje operację read-modify-write, aby zastąpić przechowywaną wartość Atom parametru bitowo exclusive orValue wartością i bieżącą wartością przechowywaną w Atomelemencie memory_order.memory_order_seq_cst, przy użyciu elementu .
atomic_fetch_xor_explicit
Wykonuje bitowo exclusive or na wartości i istniejącej wartości przechowywanej atomic w obiekcie.
template <class T>
inline T atomic_fetch_xor_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
template <class T>
inline T atomic_fetch_xor_explicit(
volatile atomic<T>* Atom,
T Value,
memory_order Order) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu T.
Value
Wartość typu T.
Order
Klasa memory_order.
Wartość zwracana
Wartość zawarta atomic przez obiekt bezpośrednio przed wykonaniem operacji.
Uwagi
Funkcja atomic_fetch_xor_explicit wykonuje operację read-modify-write, aby zastąpić przechowywaną wartość z Atom bitową exclusive orValue wartością i bieżącą wartością przechowywaną w elemencie , Atomw memory_order ramach ograniczeń określonych przez Orderelement .
atomic_flag_clear
Ustawia flagę boolatomic_flag w obiekcie na false, w obiekcie memory_order.memory_order_seq_cst.
inline void atomic_flag_clear(volatile atomic_flag* Flag) noexcept;
inline void atomic_flag_clear(atomic_flag* Flag) noexcept;
Parametry
Flag
Wskaźnik do atomic_flag obiektu.
atomic_flag_clear_explicit
Ustawia flagę boolatomic_flag w obiekcie na false, w ramach określonych memory_order ograniczeń.
inline void atomic_flag_clear_explicit(volatile atomic_flag* Flag, memory_order Order) noexcept;
inline void atomic_flag_clear_explicit(atomic_flag* Flag, memory_order Order) noexcept;
Parametry
Flag
Wskaźnik do atomic_flag obiektu.
Order
Klasa memory_order.
atomic_flag_test_and_set
Ustawia flagę boolatomic_flag w obiekcie na true, w ramach ograniczeń obiektu memory_order.memory_order_seq_cst.
inline bool atomic_flag_test_and_set(volatile atomic_flag* Flag) noexcept;
inline bool atomic_flag_test_and_set(atomic_flag* Flag) noexcept;
Parametry
Flag
Wskaźnik do atomic_flag obiektu.
Wartość zwracana
Początkowa wartość Flag.
atomic_flag_test_and_set_explicit
Ustawia flagę boolatomic_flag w obiekcie na true, w ramach określonych memory_order ograniczeń.
inline bool atomic_flag_test_and_set_explicit(volatile atomic_flag* Flag, memory_order Order) noexcept;
inline bool atomic_flag_test_and_set_explicit(atomic_flag* Flag, memory_order Order) noexcept;
Parametry
Flag
Wskaźnik do atomic_flag obiektu.
Order
Klasa memory_order.
Wartość zwracana
Początkowa wartość Flag.
atomic_init
Ustawia przechowywaną atomic wartość w obiekcie.
template <class Ty>
inline void atomic_init(volatile atomic<Ty>* Atom, Ty Value) noexcept;
template <class Ty>
inline void atomic_init(atomic<Ty>* Atom, Ty Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu Ty.
Value
Wartość typu Ty.
Uwagi
atomic_init nie jest operacją niepodzielna. Nie jest bezpieczny wątkowo.
atomic_is_lock_free
Określa, czy operacje niepodzielne na atomic obiekcie są wolne od blokady.
template <class T>
inline bool atomic_is_lock_free(const volatile atomic<T>* Atom) noexcept;
template <class T>
inline bool atomic_is_lock_free(const atomic<T>* Atom) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który przechowuje wartość typu T.
Wartość zwracana
true jeśli operacje Atom niepodzielne są wolne od blokady; w przeciwnym razie false.
Uwagi
Typ niepodzielne jest wolny od blokady, jeśli nie ma żadnych operacji niepodzielnych na tym typie, używają blokad. Jeśli ta funkcja zwróci truewartość , typ jest bezpieczny do użycia w programach obsługi sygnałów.
atomic_load
Pobiera przechowywaną atomic wartość w obiekcie.
template <class Ty>
inline Ty atomic_load(const volatile atomic<Ty>* Atom) noexcept;
template <class Ty>
inline Ty atomic_load(const atomic<Ty>* Atom) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który zawiera wartość typu Ty.
Wartość zwracana
Pobrana wartość przechowywana w pliku Atom.
Uwagi
atomic_load niejawnie używa metody memory_order.memory_order_seq_cst.
atomic_load_explicit
Pobiera przechowywaną atomic wartość w obiekcie w określonym memory_orderobiekcie .
template <class Ty>
inline Ty atomic_load_explicit(const volatile atomic<Ty>* Atom, memory_order Order) noexcept;
template <class Ty>
inline Ty atomic_load_explicit(const atomic<Ty>* Atom, memory_order Order) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który zawiera wartość typu Ty.
Order
Klasa memory_order. Nie używaj ani memory_order_releasememory_order_acq_rel.
Wartość zwracana
Pobrana wartość przechowywana w pliku Atom.
atomic_signal_fence
Działa jako ogrodzenie — typ pierwotny synchronizacji pamięci, który wymusza kolejność między operacjami ładowania/magazynu — między innymi ogrodzeniami w wątku wywołującym, który ma programy obsługi sygnałów wykonywane w tym samym wątku.
inline void atomic_signal_fence(memory_order Order) noexcept;
Parametry
Order
Ograniczenie porządkowania pamięci, które określa typ ogrodzenia.
Uwagi
Order Argument określa typ ogrodzenia.
| Wartość | Opis |
|---|---|
memory_order_relaxed |
Ogrodzenie nie ma wpływu. |
memory_order_consume |
Ogrodzenie to ogrodzenie nabyte. |
memory_order_acquire |
Ogrodzenie to ogrodzenie nabyte. |
memory_order_release |
Ogrodzenie jest ogrodzeniem zwalniania. |
memory_order_acq_rel |
Ogrodzenie jest zarówno ogrodzeniem nabytym, jak i ogrodzeniem zwalniania. |
memory_order_seq_cst |
Ogrodzenie jest zarówno ogrodzeniem nabytym, jak i ogrodzeniem zwalniania, i jest sekwencyjnie spójne. |
atomic_store
Niepodzielne przechowywanie wartości w atomic obiekcie.
template <class Ty>
inline Ty atomic_store_explicit(const volatile atomic<Ty>* Atom, Ty Value) noexcept;
template <class Ty>
inline Ty atomic_store_explicit(const atomic<Ty>* Atom, T Value) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który zawiera wartość typu Ty.
Value
Wartość typu Ty.
Uwagi
atomic_store
Value przechowuje w obiekcie, który jest wskazywany przez Atom, w memory_order.memory_order_seq_cst ramach ograniczenia.
atomic_store_explicit
Niepodzielne przechowywanie wartości w atomic obiekcie.
template <class Ty>
inline Ty atomic_store_explicit(
const volatile atomic<Ty>* Atom,
Ty Value,
memory_order Order) noexcept;
template <class Ty>
inline Ty atomic_store_explicit(
const atomic<Ty>* Atom,
T Value,
memory_order Order) noexcept;
Parametry
Atom
Wskaźnik do atomic obiektu, który zawiera wartość typu Ty.
Value
Wartość typu Ty.
Order
Klasa memory_order. Nie należy używać memory_order_consume, memory_order_acquirelub memory_order_acq_rel.
Uwagi
atomic_store
Value przechowuje w obiekcie, który jest wskazywany przez Atom, w obiekcie memory_order określonym przez Order.
atomic_thread_fence
Działa jako ogrodzenie — typ pierwotny synchronizacji pamięci, który wymusza kolejność między operacjami ładowania/magazynu — bez skojarzonej operacji niepodzielnej.
inline void atomic_thread_fence(memory_order Order) noexcept;
Parametry
Order
Ograniczenie porządkowania pamięci, które określa typ ogrodzenia.
Uwagi
Order Argument określa typ ogrodzenia.
| Wartość | Opis |
|---|---|
memory_order_relaxed |
Ogrodzenie nie ma wpływu. |
memory_order_consume |
Ogrodzenie to ogrodzenie nabyte. |
memory_order_acquire |
Ogrodzenie to ogrodzenie nabyte. |
memory_order_release |
Ogrodzenie jest ogrodzeniem zwalniania. |
memory_order_acq_rel |
Ogrodzenie jest zarówno ogrodzeniem nabytym, jak i ogrodzeniem zwalniania. |
memory_order_seq_cst |
Ogrodzenie jest zarówno ogrodzeniem nabytym, jak i ogrodzeniem zwalniania, i jest sekwencyjnie spójne. |
kill_dependency
Usuwa zależność.
template <class Ty>
Ty kill_dependency(Ty Arg) noexcept;
Parametry
Arg
Wartość typu Ty.
Wartość zwracana
Zwracana wartość to Arg. Ocena Arg elementu nie prowadzi zależności do wywołania funkcji. Przerywając możliwy łańcuch zależności, funkcja może zezwolić kompilatorowi na generowanie bardziej wydajnego kodu.