A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.github.io/LWG/issue2037 below:

atomic free functions incorrectly specified

// 29.6.1, general operations on atomic types
// In the following declarations, atomic_type is either
// atomic<T> or a named base class for T from
// Table 145 or inferred from
// Table 146.
// In the following declarations, atomic-type is either 
// atomic<T> or a named base class for T from
// Table 145 or inferred from
// Table 146.
// If it is atomic<T>, then the declaration is a template
// declaration prefixed with template <class T>
template <class T>
bool atomic_is_lock_free(const volatile atomic_typeatomic-type*);
template <class T>
bool atomic_is_lock_free(const atomic_typeatomic-type*);
template <class T>
void atomic_init(volatile atomic_typeatomic-type*, T);
template <class T>
void atomic_init(atomic_typeatomic-type*, T);
template <class T>
void atomic_store(volatile atomic_typeatomic-type*, T);
template <class T>
void atomic_store(atomic_typeatomic-type*, T);
template <class T>
void atomic_store_explicit(volatile atomic_typeatomic-type*, T, memory_order);
template <class T>
void atomic_store_explicit(atomic_typeatomic-type*, T, memory_order);
template <class T>
T atomic_load(const volatile atomic_typeatomic-type*);
template <class T>
T atomic_load(const atomic_typeatomic-type*);
template <class T>
T atomic_load_explicit(const volatile atomic_typeatomic-type*, memory_order);
template <class T>
T atomic_load_explicit(const atomic_typeatomic-type*, memory_order);
template <class T>
T atomic_exchange(volatile atomic_typeatomic-type*, T);
template <class T>
T atomic_exchange(atomic_typeatomic-type*, T);
template <class T>
T atomic_exchange_explicit(volatile atomic_typeatomic-type*, T, memory_order);
template <class T>
T atomic_exchange_explicit(atomic_typeatomic-type*, T, memory_order);
template <class T>
bool atomic_compare_exchange_weak(volatile atomic_typeatomic-type*, T*, T);
template <class T>
bool atomic_compare_exchange_weak(atomic_typeatomic-type*, T*, T);
template <class T>
bool atomic_compare_exchange_strong(volatile atomic_typeatomic-type*, T*, T);
template <class T>
bool atomic_compare_exchange_strong(atomic_typeatomic-type*, T*, T);
template <class T>
bool atomic_compare_exchange_weak_explicit(volatile atomic_typeatomic-type*, T*, T,
  memory_order, memory_order);
template <class T>
bool atomic_compare_exchange_weak_explicit(atomic_typeatomic-type*, T*, T.
  memory_order, memory_order);
template <class T>
bool atomic_compare)exchange_strong_explicit(volatile atomic_typeatomic-type*, T*, T,
  memory_order, memory_order);
template <class T>
bool atomic_compare_exchange_strong_explicit(atomic_typeatomic-type*, T*, T,
  memory_order, memory_order);
  
// 29.6.2, templated operations on atomic types
// In the following declarations, atomic_type is either
// atomic<T> or a named base class for T from
// Table 145 or inferred from
// Table 146.
template <class T>
T atomic_fetch_add(volatile atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_add(atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_add_explicit(volatile atomic-typeatomic<T>*, T, memory_order);
template <class T>
T atomic_fetch_add_explicit(atomic-typeatomic<T>*, T, memory_order);
template <class T>
T atomic_fetch_sub(volatile atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_sub(atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_sub_explicit(volatile atomic-typeatomic<T>*, T, memory_order);
template <class T>
T atomic_fetch_sub_explicit(atomic-typeatomic<T>*, T, memory_order);
template <class T>
T atomic_fetch_and(volatile atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_and(atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_and_explicit(volatile atomic-typeatomic<T>*, T, memory_order);
template <class T>
T atomic_fetch_and_explicit(atomic-typeatomic<T>*, T, memory_order);
template <class T>
T atomic_fetch_or(volatile atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_or(atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_or_explicit(volatile atomic-typeatomic<T>*, T, memory_order);
template <class T>
T atomic_fetch_or_explicit(atomic-typeatomic<T>*, T, memory_order);
template <class T>
T atomic_fetch_xor(volatile atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_xor(atomic-typeatomic<T>*, T);
template <class T>
T atomic_fetch_xor_explicit(volatile atomic-typeatomic<T>*, T, memory_order);
template <class T>
T atomic_fetch_xor_explicit(atomic-typeatomic<T>*, T, memory_order);

// 29.6.3, arithmetic operations on atomic types
// In the following declarations, atomic-integral is either 
// atomic<T> or a named base class for T from 
// Table 145 or inferred from 
// Table 146.
// If it is atomic<T>,
// then the declaration is a template specialization declaration prefixed with
// template <>
template <>
integral atomic_fetch_add(volatile atomic-integral*, integral);
template <>
integral atomic_fetch_add(atomic-integral*, integral);
template <>
integral atomic_fetch_add_explicit(volatile atomic-integral*, integral, memory_order);
template <>
integral atomic_fetch_add_explicit(atomic-integral*, integral, memory_order);
template <>
integral atomic_fetch_sub(volatile atomic-integral*, integral);
template <>
integral atomic_fetch_sub(atomic-integral*, integral);
template <>
integral atomic_fetch_sub_explicit(volatile atomic-integral*, integral, memory_order);
template <>
integral atomic_fetch_sub_explicit(atomic-integral*, integral, memory_order);
template <>
integral atomic_fetch_and(volatile atomic-integral*, integral);
template <>
integral atomic_fetch_and(atomic-integral*, integral);
template <>
integral atomic_fetch_and_explicit(volatile atomic-integral*, integral, memory_order);
template <>
integral atomic_fetch_and_explicit(atomic-integral*, integral, memory_order);
template <>
integral atomic_fetch_or(volatile atomic-integral*, integral);
template <>
integral atomic_fetch_or(atomic-integral*, integral);
template <>
integral atomic_fetch_or_explicit(atomic-integral*, integral, memory_order);
template <>
integral atomic_fetch_or_explicit(atomic-integral*, integral, memory_order);
template <>
integral atomic_fetch_xor(volatile atomic-integral*, integral);
template <>
integral atomic_fetch_xor(atomic-integral*, integral);
template <>
integral atomic_fetch_xor_explicit(volatile atomic-integral*, integral, memory_order);
template <>
integral atomic_fetch_xor_explicit(atomic-integral*, integral, memory_order);

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4