45 #ifndef CRestrictedIter_h_
46 #define CRestrictedIter_h_
51 template <
class Iterator,
53 default_binder2nd< std::less<typename Iterator::value_type> >,
54 class IsValidTest = constant_binder2nd< std::not_equal_to<Iterator>,
55 default_value<Iterator> > >
69 base(src), m_in_range(in_range), m_is_valid(is_valid) {
87 while( isValid() && !inRange() ) {
93 return m_is_valid(*
this);
97 return m_in_range(base::operator*());
101 restrictop_type m_in_range;
102 is_valid_type m_is_valid;