21 #include <type_traits> 74 return std::forward<T>(
value);
89 #if __cpp_lib_as_const || _LIBCPP_STD_VER > 14 || _MSC_VER 106 template <
typename Src,
typename Dst>
111 #if __cpp_lib_exchange_function || _LIBCPP_STD_VER > 11 || _MSC_VER 119 template <
class T,
class U = T>
122 obj = std::forward<U>(new_value);
128 namespace utility_detail {
129 template <
typename...>
132 template <
typename T,
T...>
class S,
141 (
sizeof...(Ta) + Tb)...,
142 (
sizeof...(Ta) +
sizeof...(Tb) + Tc)...>;
152 template <std::
size_t Size>
154 template <
typename S0,
typename S1>
157 typename make_seq<Size / 2>::template apply<S0, S1>,
162 template <
typename S0,
typename S1>
167 template <
typename S0,
typename S1>
172 #if __cpp_lib_integer_sequence || _MSC_VER 175 using std::integer_sequence;
181 template <
class T, T... Ints>
186 return sizeof...(Ints);
190 template <std::size_t... Ints>
195 #if FOLLY_HAS_BUILTIN(__make_integer_seq) || _MSC_FULL_VER >= 190023918 197 template <
typename T, std::
size_t Size>
202 template <
typename T, std::
size_t Size>
208 template <std::
size_t Size>
210 template <
class... T>
226 template <std::
size_t>
232 template <std::
size_t I>
242 template <std::
size_t I>
334 template <
typename T>
362 return static_cast<T&&
>(
x);
366 namespace moveonly_ {
388 template <
typename T>
398 template <
typename T>
401 return static_cast<U
>(
t);
make_index_sequence< sizeof...(T)> index_sequence_for
typename make_seq_cat< typename make_seq< Size/2 >::template apply< S0, S1 >, typename make_seq< Size/2 >::template apply< S0, S1 >, typename make_seq< Size%2 >::template apply< S0, S1 >>::type apply
static constexpr std::size_t size() noexcept
constexpr detail::Map< Move > move
in_place_type_tag< T > in_place_type(in_place_type_tag< T >={})
void as_const(T const &&)=delete
—— Concurrent Priority Queue Implementation ——
in_place_tag in_place(in_place_tag={})
requires E e noexcept(noexcept(s.error(std::move(e))))
in_place_tag(&)(in_place_tag) in_place_t
constexpr T const & as_const(T &t) noexcept
constexpr auto to_unsigned(T const &t) -> typename std::make_unsigned< T >::type
constexpr std::decay< T >::type copy(T &&value) noexcept(noexcept(typename std::decay< T >::type(std::forward< T >(value))))
typename detail::like_< Src >::template apply< remove_cvref_t< Dst >> like_t
constexpr like_t< Src, Dst > && forward_like(Dst &&dst) noexcept
integer_sequence< std::size_t, Ints... > index_sequence
make_integer_sequence< std::size_t, Size > make_index_sequence
S< T, Ta...,(sizeof...(Ta)+Tb)...,(sizeof...(Ta)+sizeof...(Tb)+Tc)... > type
typename utility_detail::make_seq< Size >::template apply< integer_sequence< T >, integer_sequence< T, 0 >> make_integer_sequence
constexpr auto to_signed(T const &t) -> typename std::make_signed< T >::type
T exchange(T &obj, U &&new_value)
constexpr unsorted_t unsorted
moveonly_::MoveOnly MoveOnly
in_place_index_tag< I > in_place_index(in_place_index_tag< I >={})
constexpr presorted_t presorted
constexpr T && operator()(T &&x) const noexcept
constexpr initlist_construct_t initlist_construct
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)