48 (
primitive<std::remove_pointer_t<T>> or std::is_void_v<std::remove_pointer_t<T>>));
52concept decayable = not std::same_as<T, std::decay_t<T>>;
55template<
typename T,
typename U>
60template<
typename T,
typename U>
62 std::floating_point<T> == std::floating_point<U>;
68template<
typename T,
typename U>
78template<
typename T,
typename U>
82 using type = std::conditional_t<
sizeof(
T) >=
sizeof(
U),
T,
U>;
87template<
typename T,
typename U>
91 using type = std::conditional_t<std::is_floating_point_v<T>,
T,
U>;
95template<
typename T,
typename U>
99template<
typename T,
typename U>
105concept is_unique_ptr = std::same_as<std::decay_t<T>, std::unique_ptr<typename T::element_type>>;
116template<
template<
typename...>
class Template,
typename... Args>
122template<
typename T,
template<
typename...>
class Template>
125template<
template<
typename...>
class Template,
typename... Args>
132template<
typename T,
template <
typename...>
class Template>
137template<
typename... Ts>
147template<
typename...
Ts>
159template<
typename...
Ts>
176template<param_pack P>
180template<std::
size_t I, param_pack P>
186template<param_pack P,
typename T>
189 template<std::size_t... Is>
197template<
typename P,
typename T>
199 detail::typed_param_pack_helper<P, T>(std::make_index_sequence<param_pack_size_v<P>>{});
207template<
typename Stream,
typename T>
209 { out << t } -> std::same_as<Stream&>;
213template<
typename Callback,
typename T>
215 std::invoke(std::forward<Callback>(callback), value);
constexpr bool is_param_pack_v
Convenience alias for is_param_pack<T>::value.
typename as_tuple< T >::type as_tuple_t
Convenience alias for as_tuple<T>::type.
std::tuple_element_t< I, detail::as_tuple_t< P > > param_pack_element_t
Returns the.
typename common_type< T, U >::type common_type_t
Convenience alias for common_type<T, U>::type.
and arithmetic< U > and same_signedness< T, U > U
constexpr std::size_t param_pack_size_v
Returns the size of a parameter pack type.
std::conditional_t< sizeof(T) >=sizeof(U), T, U > type
Computes the common type of.
Helper struct to check whether parameter pack type.
and(std::same_as< param_pack_element_t< Is, P >, T > and ...) typed_param_pack_helper(std
Helper struct for parameter packs.