11 #ifndef ZYPP_TYPETRAITS_H
12 #define ZYPP_TYPETRAITS_H
14 #include <type_traits>
26 template<
typename C>
static std::true_type
test(
typename C::const_iterator * );
27 template<
typename C>
static std::false_type
test(...);
29 static constexpr
bool value = decltype(test<Tp>(
nullptr))::
value;
32 template <
typename Tp>
37 using Signature =
typename C::const_iterator(C::*)()
const;
40 template<
typename C>
static std::false_type
testBeg(...);
43 template<
typename C>
static std::false_type
testEnd(...);
56 :
public std::integral_constant<bool, _detail::has_type_const_iterator<Tp>::value>
62 :
public std::integral_constant<bool, _detail::_has_container_begin_end<Tp>::value>
68 :
public std::integral_constant<bool, !std::is_same<Tp, std::string>::value && has_container_begin_end<Tp>::value>
74 #endif // ZYPP_TYPETRAITS_H