atomic.hpp: fix atomic_wait::list regression
Typo-regressions. Also improve static asserts.
This commit is contained in:
@@ -88,7 +88,7 @@ namespace atomic_wait
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
constexpr void set_value(T value = T{})
|
constexpr void set_value(T value = T{})
|
||||||
{
|
{
|
||||||
old = get_value<T>();
|
old = get_value<T>(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@@ -146,13 +146,13 @@ namespace atomic_wait
|
|||||||
constexpr list(atomic_t<U, Align>&... vars)
|
constexpr list(atomic_t<U, Align>&... vars)
|
||||||
: m_info{{&vars.raw(), sizeof(U), info::get_value<U>(), info::get_mask<U>()}...}
|
: m_info{{&vars.raw(), sizeof(U), info::get_value<U>(), info::get_mask<U>()}...}
|
||||||
{
|
{
|
||||||
static_assert(sizeof...(U) <= Max);
|
static_assert(sizeof...(U) == Max, "Inconsistent amount of atomics.");
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... U>
|
template <typename... U>
|
||||||
constexpr list& values(U... values)
|
constexpr list& values(U... values)
|
||||||
{
|
{
|
||||||
static_assert(sizeof...(U) <= Max);
|
static_assert(sizeof...(U) == Max, "Inconsistent amount of values.");
|
||||||
|
|
||||||
auto* ptr = m_info;
|
auto* ptr = m_info;
|
||||||
((ptr++)->template set_value<T>(values), ...);
|
((ptr++)->template set_value<T>(values), ...);
|
||||||
@@ -160,9 +160,9 @@ namespace atomic_wait
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename... U>
|
template <typename... U>
|
||||||
constexpr list& masks(T... masks)
|
constexpr list& masks(U... masks)
|
||||||
{
|
{
|
||||||
static_assert(sizeof...(U) <= Max);
|
static_assert(sizeof...(U) <= Max, "Too many masks.");
|
||||||
|
|
||||||
auto* ptr = m_info;
|
auto* ptr = m_info;
|
||||||
((ptr++)->template set_mask<T>(masks), ...);
|
((ptr++)->template set_mask<T>(masks), ...);
|
||||||
|
|||||||
Reference in New Issue
Block a user