9 #ifndef LIBPMEMOBJ_CPP_ITERATOR_TRAITS_HPP 
   10 #define LIBPMEMOBJ_CPP_ITERATOR_TRAITS_HPP 
   20 template <
typename T, 
typename U, 
typename C = 
void>
 
   21 struct has_iterator_category_convertible_to : std::false_type {
 
   24 template <
typename T, 
typename U>
 
   25 struct has_iterator_category_convertible_to<
 
   27     typename std::enable_if<std::is_convertible<
 
   28         typename std::iterator_traits<T>::iterator_category,
 
   29         U>::value>::type> : std::true_type {
 
   38     : 
public has_iterator_category_convertible_to<T, std::output_iterator_tag> {
 
   47     : 
public has_iterator_category_convertible_to<T, std::input_iterator_tag> {
 
   56     : 
public has_iterator_category_convertible_to<T,
 
   57                           std::forward_iterator_tag> {
 
   66                        T, std::bidirectional_iterator_tag> {
 
   75                        T, std::random_access_iterator_tag> {
 
Persistent memory namespace.
Definition: allocation_flag.hpp:15
Type trait to determine if a given parameter type satisfies requirements of BidirectionalIterator.
Definition: iterator_traits.hpp:66
Type trait to determine if a given parameter type satisfies requirements of ForwardIterator.
Definition: iterator_traits.hpp:57
Type trait to determine if a given parameter type satisfies requirements of OutputIterator.
Definition: iterator_traits.hpp:38
Type trait to determine if a given parameter type satisfies requirements of RandomAccessIterator.
Definition: iterator_traits.hpp:75