20 #include <type_traits> 63 template <
typename S = T,
typename = decltype(S())>
93 _t<std::enable_if<std::is_constructible<T, U&&>::value>>* =
nullptr,
102 template <
typename...
Args,
typename = decltype(
T(std::declval<Args>()...))>
110 T(std::declval<std::initializer_list<U>&>(),
111 std::declval<Args>()...))>
114 T(
std::declval<
std::initializer_list<U>&>(),
126 other.erased_ =
true;
131 other.erased_ =
true;
163 template <
typename S = T,
typename = decltype(S())>
166 template <
typename...
Args,
typename = decltype(
T(std::declval<Args>()...))>
169 : value(
std::forward<
Args>(args)...) {}
typename remove_cvref< T >::type remove_cvref_t
Indestructible & operator=(Indestructible &&other) noexcept(noexcept(T(std::declval< T >())))
T * operator->() noexcept
constexpr Storage() noexcept(noexcept(T()))
constexpr detail::Map< Move > move
internal::ArgsMatcher< InnerMatcher > Args(const InnerMatcher &matcher)
—— Concurrent Priority Queue Implementation ——
T const & operator*() const noexcept
requires E e noexcept(noexcept(s.error(std::move(e))))
~Indestructible()=default
Indestructible(Indestructible &&other) noexcept(noexcept(T(std::declval< T >())))
constexpr Indestructible(U &&u) noexcept(noexcept(T(std::declval< U >())))
constexpr Indestructible(std::initializer_list< U > il, Args...args) noexcept(noexcept(T(std::declval< std::initializer_list< U > & >(), std::declval< Args >()...)))
Indestructible & operator=(Indestructible const &)=delete
constexpr Storage(Args &&...args) noexcept(noexcept(T(std::declval< Args >()...)))
T const * operator->() const noexcept
constexpr Indestructible(Args &&...args) noexcept(noexcept(T(std::declval< Args >()...)))
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)
void check() const noexcept
constexpr Indestructible() noexcept(noexcept(T()))