11 #ifndef ZYPP_BASE_ITERABLE_H
12 #define ZYPP_BASE_ITERABLE_H
35 template <
class TIterator>
41 typedef typename std::iterator_traits<iterator_type>::value_type
value_type;
42 typedef typename std::iterator_traits<iterator_type>::difference_type
difference_type;
43 typedef typename std::iterator_traits<iterator_type>::pointer
pointer;
44 typedef typename std::iterator_traits<iterator_type>::reference
reference;
52 Iterable( iterator_type begin_r, iterator_type end_r )
60 iterator_type
end()
const
67 { size_type ret = 0;
for ( iterator_type i =
_begin; i !=
_end; ++i ) ++ret;
return ret; }
69 bool contains(
const value_type & val_r )
const
72 iterator_type
find(
const value_type & val_r )
const
73 { iterator_type ret =
_begin;
for ( ; ret !=
_end; ++ret )
if ( *ret == val_r )
break;
return ret; }
81 template <
class TIterator>
83 {
return Iterable<TIterator>( std::forward<TIterator>(begin_r), std::forward<TIterator>(end_r) ); }
87 #endif // ZYPP_BASE_ITERABLE_H
bool contains(const value_type &val_r) const
iterator_type end() const
iterator_type find(const value_type &val_r) const
iterator_type begin() const
Iterable(iterator_type begin_r, iterator_type end_r)
Ctor taking the iterator pair.
std::iterator_traits< iterator_type >::difference_type difference_type
Iterable< TIterator > makeIterable(TIterator &&begin_r, TIterator &&end_r)
std::iterator_traits< iterator_type >::reference reference
std::iterator_traits< iterator_type >::iterator_category iterator_category
std::iterator_traits< iterator_type >::value_type value_type
Easy-to use interface to the ZYPP dependency resolver.
Iterable()
Ctor taking the iterator pair.
std::iterator_traits< iterator_type >::pointer pointer