1 #ifndef ZYPPNG_META_TYPE_TRAITS_INCLUDED 2 #define ZYPPNG_META_TYPE_TRAITS_INCLUDED 7 #if !defined ( __cpp_lib_void_t ) 19 #if __cplusplus < 202002L 25 template <
class Default,
class AlwaysVoid,
26 template<
class...>
class Op,
class... Args>
32 template <
class Default,
template<
class...>
class Op,
class... Args>
48 template <
template<
class...>
class Op,
class... Args>
51 template <
template<
class...>
class Op,
class... Args>
54 template <
class Default,
template<
class...>
class Op,
class... Args>
57 template<
template<
class...>
class Op,
class... Args >
60 template<
class Default,
template<
class...>
class Op,
class... Args >
63 template <
class Expected,
template<
class...>
class Op,
class... Args>
66 template <
class Expected,
template<
class...>
class Op,
class... Args>
69 template <
class To,
template<
class...>
class Op,
class... Args>
72 template <
class To,
template<
class...>
class Op,
class... Args>
77 using type = std::remove_cv_t<std::remove_reference_t<T>>;
85 #if __cplusplus < 201703L 90 template<
class B1,
class... Bn>
97 template<
class B1,
class... Bn>
111 template <
template<
class ... >
class Templ, class Type >
114 template <
template<
typename ... >
class Templ, typename... Args >
118 template<
typename T>
121 template<
typename T>
124 template<
typename T>
127 template<
typename T>
131 template <
typename ...T>
typename detail::detector< detail::nonesuch, void, Op, Args... >::type detected_t
typename detected_or< Default, Op, Args... >::type detected_or_t
std::remove_cv_t< T > type
typename make_void< Ts... >::type void_t
constexpr bool is_detected_v
std::is_same< Expected, detected_t< Op, Args... > > is_detected_exact
std::remove_cv_t< std::remove_reference_t< T > > type
std::remove_cv_t< T > type
constexpr bool is_detected_exact_v
integral_constant< bool, B > bool_constant
std::remove_cv_t< T > type
nonesuch(nonesuch const &)=delete
void operator=(nonesuch const &)=delete
typename conditional< B, T, F >::type conditional_t
constexpr bool is_detected_convertible_v
typename detail::detector< detail::nonesuch, void, Op, Args... >::value_t is_detected
typename remove_cvref< T >::type remove_cvref_t
std::is_convertible< detected_t< Op, Args... >, To > is_detected_convertible
typename remove_smart_ptr< T >::type remove_smart_ptr_t