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
25template <
class Default,
class AlwaysVoid,
26 template<
class...>
class Op,
class... Args>
32template <
class Default,
template<
class...>
class Op,
class... Args>
48template <
template<
class...>
class Op,
class... Args>
51template <
template<
class...>
class Op,
class... Args>
54template <
class Default,
template<
class...>
class Op,
class... Args>
57template<
template<
class...>
class Op,
class... Args >
60template<
class Default,
template<
class...>
class Op,
class... Args >
63template <
class Expected,
template<
class...>
class Op,
class... Args>
66template <
class Expected,
template<
class...>
class Op,
class... Args>
69template <
class To,
template<
class...>
class Op,
class... Args>
72template <
class To,
template<
class...>
class Op,
class... Args>
77 using type = std::remove_cv_t<std::remove_reference_t<T>>;
85#if __cplusplus < 201703L
90template<
class B1,
class... Bn>
97template<
class B1,
class... Bn>
111 template <
template<
class ... >
class Templ, class Type >
118 template<
typename T>
121 template<
typename T>
124 template<
typename T>
127 template<
typename T>
131 template <
typename ...T>
Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...
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
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