libstdc++: the specialization atomic_ref<bool> should use the primary template
Per [atomics.ref.int] `bool` is excluded from the list of integral types for which there is a specialization of the `atomic_ref` class template and [Note 1] clearly states that `atomic_ref<bool>` "uses the primary template" instead. libstdc++-v3/ChangeLog: * include/bits/atomic_base.h (__atomic_ref): Do not use integral specialization for bool. Signed-off-by: Damien Lebrun-Grandie <dalg24@gmail.com>
This commit is contained in:
parent
b96789abf8
commit
79d3f17b07
1 changed files with 2 additions and 1 deletions
|
@ -1478,7 +1478,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
#undef _GLIBCXX20_INIT
|
||||
|
||||
template<typename _Tp,
|
||||
bool = is_integral_v<_Tp>, bool = is_floating_point_v<_Tp>>
|
||||
bool = is_integral_v<_Tp> && !is_same_v<_Tp, bool>,
|
||||
bool = is_floating_point_v<_Tp>>
|
||||
struct __atomic_ref;
|
||||
|
||||
// base class for non-integral, non-floating-point, non-pointer types
|
||||
|
|
Loading…
Add table
Reference in a new issue