9 #ifndef ALPS_TYPE_TRAITS_ELEMENT_TYPE_H 10 #define ALPS_TYPE_TRAITS_ELEMENT_TYPE_H 14 #include <type_traits> 22 template <
class T,
class F>
23 struct element_type_helper {};
26 struct element_type_helper<T,
std::false_type>
32 struct element_type_helper<T,
std::true_type>
34 typedef typename T::value_type type;
37 template <
class T,
class F>
38 struct element_type_recursive_helper {};
41 struct element_type_recursive_helper<T,
std::false_type>
47 struct element_type_recursive_helper<T,
std::true_type>
57 :
public detail::element_type_helper<T,typename has_value_type<T>::type > {};
61 :
public detail::element_type_recursive_helper<T,typename has_value_type<T>::type > {};
65 #endif // ALPS_TYPE_TRAITS_ELEMENT_TYPE_H