1#ifndef ZYPPNG_META_TYPE_TRAITS_INCLUDED
2#define ZYPPNG_META_TYPE_TRAITS_INCLUDED
7#if !defined ( __cpp_lib_void_t )
24template <
class Default,
class AlwaysVoid,
25 template<
class...>
class Op,
class... Args>
31template <
class Default,
template<
class...>
class Op,
class... Args>
47template <
template<
class...>
class Op,
class... Args>
50template <
template<
class...>
class Op,
class... Args>
53template <
class Default,
template<
class...>
class Op,
class... Args>
56template<
template<
class...>
class Op,
class... Args >
59template<
class Default,
template<
class...>
class Op,
class... Args >
62template <
class Expected,
template<
class...>
class Op,
class... Args>
65template <
class Expected,
template<
class...>
class Op,
class... Args>
68template <
class To,
template<
class...>
class Op,
class... Args>
71template <
class To,
template<
class...>
class Op,
class... Args>
75#if __cplusplus < 202002L
79 using type = std::remove_cv_t<std::remove_reference_t<T>>;
87#if __cplusplus < 201703L
92template<
class B1,
class... Bn>
99template<
class B1,
class... Bn>
113 template <
template<
class ... >
class Templ, class Type >
116 template <
template<
typename ... >
class Templ, typename... Args >
119 template <
template<
class ... >
class Templ, class Type >
123 template<
typename T>
126 template<
typename T>
129 template<
typename T>
132 template<
typename T>
136 template <
typename ...T>
detail::detector< Default, void, Op, Args... > detected_or
typename detail::detector< detail::nonesuch, void, Op, Args... >::value_t is_detected
std::is_same< Expected, detected_t< Op, Args... > > is_detected_exact
typename detail::detector< detail::nonesuch, void, Op, Args... >::type detected_t
constexpr bool is_detected_exact_v
std::is_convertible< detected_t< Op, Args... >, To > is_detected_convertible
constexpr bool is_detected_convertible_v
integral_constant< bool, B > bool_constant
typename make_void< Ts... >::type void_t
typename conditional< B, T, F >::type conditional_t
constexpr bool is_detected_v
typename remove_cvref< T >::type remove_cvref_t
typename detected_or< Default, Op, Args... >::type detected_or_t
constexpr bool is_instance_of_v
typename remove_smart_ptr< T >::type remove_smart_ptr_t
nonesuch(nonesuch const &)=delete
void operator=(nonesuch const &)=delete
std::remove_cv_t< std::remove_reference_t< T > > type
std::remove_cv_t< T > type
std::remove_cv_t< T > type
std::remove_cv_t< T > type