diff --git a/doc/filter_iterator_ref.html b/doc/filter_iterator_ref.html deleted file mode 100755 index 0ffd956..0000000 --- a/doc/filter_iterator_ref.html +++ /dev/null @@ -1,259 +0,0 @@ - - - -
- - --template <class Predicate, class Iterator> -class filter_iterator -{ - public: - typedef iterator_traits<Iterator>::value_type value_type; - typedef iterator_traits<Iterator>::reference reference; - typedef iterator_traits<Iterator>::pointer pointer; - typedef iterator_traits<Iterator>::difference_type difference_type; - typedef /* see below */ iterator_category; - - filter_iterator(); - filter_iterator(Predicate f, Iterator x, Iterator end = Iterator()); - filter_iterator(Iterator x, Iterator end = Iterator()); - template<class OtherIterator> - filter_iterator( - filter_iterator<Predicate, OtherIterator> const& t - , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0 // exposition - ); - Predicate predicate() const; - Iterator end() const; - Iterator const& base() const; - reference operator*() const; - filter_iterator& operator++(); -private: - Predicate m_pred; // exposition only - Iterator m_iter; // exposition only - Iterator m_end; // exposition only -}; --
If Iterator models Readable Lvalue Iterator and Bidirectional Traversal -Iterator then iterator_category is convertible to -std::bidirectional_iterator_tag. -Otherwise, if Iterator models Readable Lvalue Iterator and Forward Traversal -Iterator then iterator_category is convertible to -std::forward_iterator_tag. -Otherwise iterator_category is -convertible to std::input_iterator_tag.
-The Iterator argument shall meet the requirements of Readable -Iterator and Single Pass Iterator or it shall meet the requirements of -Input Iterator.
-The Predicate argument must be Assignable, Copy Constructible, and -the expression p(x) must be valid where p is an object of type -Predicate, x is an object of type -iterator_traits<Iterator>::value_type, and where the type of -p(x) must be convertible to bool.
-The concepts that filter_iterator models are dependent on which -concepts the Iterator argument models, as specified in the -following tables.
-If Iterator models | -then filter_iterator models | -
---|---|
Single Pass Iterator | -Single Pass Iterator | -
Forward Traversal Iterator | -Forward Traversal Iterator | -
Bidirectional Traversal Iterator | -Bidirectional Traversal Iterator | -
If Iterator models | -then filter_iterator models | -
---|---|
Readable Iterator | -Readable Iterator | -
Writable Iterator | -Writable Iterator | -
Lvalue Iterator | -Lvalue Iterator | -
If Iterator models | -then filter_iterator models | -
---|---|
Readable Iterator, Single Pass Iterator | -Input Iterator | -
Readable Lvalue Iterator, Forward Traversal Iterator | -Forward Iterator | -
Writable Lvalue Iterator, Forward Traversal Iterator | -Mutable Forward Iterator | -
Writable Lvalue Iterator, Bidirectional Iterator | -Mutable Bidirectional Iterator | -
filter_iterator<P1, X> is interoperable with filter_iterator<P2, Y> -if and only if X is interoperable with Y.
-In addition to those operations required by the concepts that -filter_iterator models, filter_iterator provides the following -operations.
-filter_iterator();
-Requires: | Predicate and Iterator must be Default Constructible. | -
---|---|
Effects: | Constructs a filter_iterator whose``m_pred``, m_iter, and m_end -members are a default constructed. | -
filter_iterator(Predicate f, Iterator x, Iterator end = Iterator());
-Effects: | Constructs a filter_iterator where m_iter is either -the first position in the range [x,end) such that f(*m_iter) == true -or else``m_iter == end``. The member m_pred is constructed from -f and m_end from end. | -
---|
filter_iterator(Iterator x, Iterator end = Iterator());
-Requires: | Predicate must be Default Constructible and -Predicate is a class type (not a function pointer). | -
---|---|
Effects: | Constructs a filter_iterator where m_iter is either -the first position in the range [x,end) such that m_pred(*m_iter) == true -or else``m_iter == end``. The member m_pred is default constructed. | -
-template <class OtherIterator> -filter_iterator( - filter_iterator<Predicate, OtherIterator> const& t - , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0 // exposition - );`` --
Requires: | OtherIterator is implicitly convertible to Iterator. | -
---|---|
Effects: | Constructs a filter iterator whose members are copied from t. | -
Predicate predicate() const;
-Returns: | m_pred | -
---|
Iterator end() const;
-Returns: | m_end | -
---|
Iterator const& base() const;
-Returns: | m_iterator | -
---|
reference operator*() const;
-Returns: | *m_iter | -
---|
filter_iterator& operator++();
-Effects: | Increments m_iter and then continues to -increment m_iter until either m_iter == m_end -or m_pred(*m_iter) == true. | -
---|---|
Returns: | *this | -
-template < - class Iterator - , class Value = use_default - , class CategoryOrTraversal = use_default - , class Reference = use_default - , class Difference = use_default -> -class indirect_iterator -{ - public: - typedef /* see below */ value_type; - typedef /* see below */ reference; - typedef /* see below */ pointer; - typedef /* see below */ difference_type; - typedef /* see below */ iterator_category; - - indirect_iterator(); - indirect_iterator(Iterator x); - - template < - class Iterator2, class Value2, class Category2 - , class Reference2, class Difference2 - > - indirect_iterator( - indirect_iterator< - Iterator2, Value2, Category2, Reference2, Difference2 - > const& y - , typename enable_if_convertible<Iterator2, Iterator>::type* = 0 // exposition - ); - - Iterator const& base() const; - reference operator*() const; - indirect_iterator& operator++(); - indirect_iterator& operator--(); -private: - Iterator m_iterator; // exposition -}; --
The member types of indirect_iterator are defined according to -the following pseudo-code, where V is -iterator_traits<Iterator>::value_type
--if (Value is use_default) then - typedef remove_const<pointee<V>::type>::type value_type; -else - typedef remove_const<Value>::type value_type; - -if (Reference is use_default) then - if (Value is use_default) then - typedef indirect_reference<V>::type reference; - else - typedef Value& reference; -else - typedef Reference reference; - -if (Value is use_default) then - typedef pointee<V>::type* pointer; -else - typedef Value* pointer; - -if (Difference is use_default) - typedef iterator_traits<Iterator>::difference_type difference_type; -else - typedef Difference difference_type; - -if (CategoryOrTraversal is use_default) - typedef iterator-category ( - iterator_traversal<Iterator>::type,``reference``,``value_type`` - ) iterator_category; -else - typedef iterator-category ( - CategoryOrTraversal,``reference``,``value_type`` - ) iterator_category; --
The expression *v, where v is an object of -iterator_traits<Iterator>::value_type, shall be valid -expression and convertible to reference. Iterator shall -model the traversal concept indicated by iterator_category. -Value, Reference, and Difference shall be chosen so -that value_type, reference, and difference_type meet -the requirements indicated by iterator_category.
-[Note: there are further requirements on the -iterator_traits<Iterator>::value_type if the Value -parameter is not use_default, as implied by the algorithm for -deducing the default for the value_type member.]
-In addition to the concepts indicated by iterator_category -and by iterator_traversal<indirect_iterator>::type, a -specialization of indirect_iterator models the following -concepts, Where v is an object of -iterator_traits<Iterator>::value_type:
----
-- Readable Iterator if reference(*v) is convertible to -value_type.
-- Writable Iterator if reference(*v) = t is a valid -expression (where t is an object of type -indirect_iterator::value_type)
-- Lvalue Iterator if reference is a reference type.
-
indirect_iterator<X,V1,C1,R1,D1> is interoperable with -indirect_iterator<Y,V2,C2,R2,D2> if and only if X is -interoperable with Y.
-In addition to the operations required by the concepts described -above, specializations of indirect_iterator provide the -following operations.
-indirect_iterator();
-Requires: | Iterator must be Default Constructible. | -
---|---|
Effects: | Constructs an instance of indirect_iterator with -a default-constructed m_iterator. | -
indirect_iterator(Iterator x);
-Effects: | Constructs an instance of indirect_iterator with -m_iterator copy constructed from x. | -
---|
-template < - class Iterator2, class Value2, unsigned Access, class Traversal - , class Reference2, class Difference2 -> -indirect_iterator( - indirect_iterator< - Iterator2, Value2, Access, Traversal, Reference2, Difference2 - > const& y - , typename enable_if_convertible<Iterator2, Iterator>::type* = 0 // exposition -); --
Requires: | Iterator2 is implicitly convertible to Iterator. | -
---|---|
Effects: | Constructs an instance of indirect_iterator whose -m_iterator subobject is constructed from y.base(). | -
Iterator const& base() const;
-Returns: | m_iterator | -
---|
reference operator*() const;
-Returns: | **m_iterator | -
---|
indirect_iterator& operator++();
-Effects: | ++m_iterator | -
---|---|
Returns: | *this | -
indirect_iterator& operator--();
-Effects: | --m_iterator | -
---|---|
Returns: | *this | -
-template < - class Derived - , class Base - , class Value = use_default - , class CategoryOrTraversal = use_default - , class Reference = use_default - , class Difference = use_default -> -class iterator_adaptor - : public iterator_facade<Derived, V', C', R', D'> // see details -{ - friend class iterator_core_access; - public: - iterator_adaptor(); - explicit iterator_adaptor(Base const& iter); - typedef Base base_type; - Base const& base() const; - protected: - typedef iterator_adaptor iterator_adaptor_; - Base const& base_reference() const; - Base& base_reference(); - private: // Core iterator interface for iterator_facade. - typename iterator_adaptor::reference dereference() const; - - template < - class OtherDerived, class OtherIterator, class V, class C, class R, class D - > - bool equal(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& x) const; - - void advance(typename iterator_adaptor::difference_type n); - void increment(); - void decrement(); - - template < - class OtherDerived, class OtherIterator, class V, class C, class R, class D - > - typename iterator_adaptor::difference_type distance_to( - iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& y) const; - - private: - Base m_iterator; // exposition only -}; --
static_cast<Derived*>(iterator_adaptor*) shall be well-formed. -The Base argument shall be Assignable and Copy Constructible.
-The V', C', R', and D' parameters of the iterator_facade -used as a base class in the summary of iterator_adaptor -above are defined as follows:
--V' = if (Value is use_default) - return iterator_traits<Base>::value_type - else - return Value - -C' = if (CategoryOrTraversal is use_default) - return iterator_traversal<Base>::type - else - return CategoryOrTraversal - -R' = if (Reference is use_default) - if (Value is use_default) - return iterator_traits<Base>::reference - else - return Value& - else - return Reference - -D' = if (Difference is use_default) - return iterator_traits<Base>::difference_type - else - return Difference -- - - -
iterator_adaptor();
-Requires: | The Base type must be Default Constructible. | -
---|---|
Returns: | An instance of iterator_adaptor with -m_iterator default constructed. | -
explicit iterator_adaptor(Base const& iter);
-Returns: | An instance of iterator_adaptor with -m_iterator copy constructed from iter. | -
---|
Base const& base() const;
-Returns: | m_iterator | -
---|
Base const& base_reference() const;
-Returns: | A const reference to m_iterator. | -
---|
Base& base_reference();
-Returns: | A non-const reference to m_iterator. | -
---|
typename iterator_adaptor::reference dereference() const;
-Returns: | *m_iterator | -
---|
-template < -class OtherDerived, class OtherIterator, class V, class C, class R, class D -> -bool equal(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& x) const; --
Returns: | m_iterator == x.base() | -
---|
void advance(typename iterator_adaptor::difference_type n);
-Effects: | m_iterator += n; | -
---|
void increment();
-Effects: | ++m_iterator; | -
---|
void decrement();
-Effects: | --m_iterator; | -
---|
-template < - class OtherDerived, class OtherIterator, class V, class C, class R, class D -> -typename iterator_adaptor::difference_type distance_to( - iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& y) const; --
Returns: | y.base() - m_iterator | -
---|
-template <class Predicate, class Iterator> -filter_iterator<Predicate,Iterator> -make_filter_iterator(Predicate f, Iterator x, Iterator end = Iterator()); --
Returns: | filter_iterator<Predicate,Iterator>(f, x, end) | -
---|
-template <class Predicate, class Iterator> -filter_iterator<Predicate,Iterator> -make_filter_iterator(Iterator x, Iterator end = Iterator()); --
Returns: | filter_iterator<Predicate,Iterator>(x, end) | -
---|