An iterator on a sequence of read-only objects. More...
#include <iterator_to_const.defs.hh>
Public Types | |
| typedef Traits::iterator_category | iterator_category |
| typedef Traits::value_type | value_type |
| typedef Traits::difference_type | difference_type |
| typedef Traits::pointer | pointer |
| typedef Traits::reference | reference |
Public Member Functions | |
| iterator_to_const () | |
| Default constructor. | |
| iterator_to_const (const iterator_to_const &y) | |
| Copy constructor. | |
| reference | operator* () const |
| Dereference operator. | |
| pointer | operator-> () const |
| Indirect access operator. | |
| iterator_to_const & | operator++ () |
| Prefix increment operator. | |
| iterator_to_const | operator++ (int) |
| Postfix increment operator. | |
| iterator_to_const & | operator-- () |
| Prefix decrement operator. | |
| iterator_to_const | operator-- (int) |
| Postfix decrement operator. | |
| bool | operator== (const iterator_to_const &y) const |
Returns true if and only if *this and y are identical. | |
| bool | operator!= (const iterator_to_const &y) const |
Returns true if and only if *this and y are different. | |
Private Types | |
| typedef Container::iterator | Base |
| The type of the underlying mutable iterator. | |
| typedef std::iterator_traits < typename Container::const_iterator > | Traits |
| A shortcut for naming the const_iterator traits. | |
Private Member Functions | |
| iterator_to_const (const Base &b) | |
| Constructs from the lower-level iterator. | |
Private Attributes | |
| Base | base |
| A (mutable) iterator on the sequence of elements. | |
Friends | |
| class | const_iterator_to_const< Container > |
| class | Powerset |
An iterator on a sequence of read-only objects.
This template class implements a bidirectional read-only iterator on the sequence of objects Container. By using this iterator class it is not possible to modify the objects contained in Container; rather, object modification has to be implemented by object replacement, i.e., by using the methods provided by Container to remove/insert objects. Such a policy (a modifiable container of read-only objects) allows for a reliable enforcement of invariants (such as sortedness of the objects in the sequence).
Definition at line 51 of file iterator_to_const.defs.hh.
typedef Container::iterator Parma_Polyhedra_Library::iterator_to_const< Container >::Base [private] |
The type of the underlying mutable iterator.
Definition at line 54 of file iterator_to_const.defs.hh.
| typedef Traits::difference_type Parma_Polyhedra_Library::iterator_to_const< Container >::difference_type |
Definition at line 75 of file iterator_to_const.defs.hh.
| typedef Traits::iterator_category Parma_Polyhedra_Library::iterator_to_const< Container >::iterator_category |
Definition at line 73 of file iterator_to_const.defs.hh.
| typedef Traits::pointer Parma_Polyhedra_Library::iterator_to_const< Container >::pointer |
Definition at line 76 of file iterator_to_const.defs.hh.
| typedef Traits::reference Parma_Polyhedra_Library::iterator_to_const< Container >::reference |
Definition at line 77 of file iterator_to_const.defs.hh.
typedef std::iterator_traits<typename Container::const_iterator> Parma_Polyhedra_Library::iterator_to_const< Container >::Traits [private] |
A shortcut for naming the const_iterator traits.
Definition at line 58 of file iterator_to_const.defs.hh.
| typedef Traits::value_type Parma_Polyhedra_Library::iterator_to_const< Container >::value_type |
Definition at line 74 of file iterator_to_const.defs.hh.
| Parma_Polyhedra_Library::iterator_to_const< Container >::iterator_to_const | ( | const Base & | b | ) | [inline, private] |
Constructs from the lower-level iterator.
Definition at line 44 of file iterator_to_const.inlines.hh.
00045 : base(b) { 00046 }
| Parma_Polyhedra_Library::iterator_to_const< Container >::iterator_to_const | ( | ) | [inline] |
Default constructor.
Definition at line 32 of file iterator_to_const.inlines.hh.
00033 : base() { 00034 }
| Parma_Polyhedra_Library::iterator_to_const< Container >::iterator_to_const | ( | const iterator_to_const< Container > & | y | ) | [inline] |
Copy constructor.
Definition at line 38 of file iterator_to_const.inlines.hh.
00039 : base(y.base) { 00040 }
| bool Parma_Polyhedra_Library::iterator_to_const< Container >::operator!= | ( | const iterator_to_const< Container > & | y | ) | const [inline] |
Returns true if and only if *this and y are different.
Definition at line 98 of file iterator_to_const.inlines.hh.
References Parma_Polyhedra_Library::iterator_to_const< Container >::operator==().
00098 { 00099 return !operator==(y); 00100 }
| iterator_to_const< Container >::reference Parma_Polyhedra_Library::iterator_to_const< Container >::operator* | ( | ) | const [inline] |
Dereference operator.
Definition at line 50 of file iterator_to_const.inlines.hh.
References Parma_Polyhedra_Library::iterator_to_const< Container >::base.
00050 { 00051 return *base; 00052 }
| iterator_to_const< Container > Parma_Polyhedra_Library::iterator_to_const< Container >::operator++ | ( | int | ) | [inline] |
Postfix increment operator.
Definition at line 69 of file iterator_to_const.inlines.hh.
References Parma_Polyhedra_Library::iterator_to_const< Container >::operator++().
00069 { 00070 iterator_to_const tmp = *this; 00071 operator++(); 00072 return tmp; 00073 }
| iterator_to_const< Container > & Parma_Polyhedra_Library::iterator_to_const< Container >::operator++ | ( | ) | [inline] |
Prefix increment operator.
Definition at line 62 of file iterator_to_const.inlines.hh.
References Parma_Polyhedra_Library::iterator_to_const< Container >::base.
Referenced by Parma_Polyhedra_Library::iterator_to_const< Container >::operator++().
00062 { 00063 ++base; 00064 return *this; 00065 }
| iterator_to_const< Container > Parma_Polyhedra_Library::iterator_to_const< Container >::operator-- | ( | int | ) | [inline] |
Postfix decrement operator.
Definition at line 84 of file iterator_to_const.inlines.hh.
References Parma_Polyhedra_Library::iterator_to_const< Container >::operator--().
00084 { 00085 iterator_to_const tmp = *this; 00086 operator--(); 00087 return tmp; 00088 }
| iterator_to_const< Container > & Parma_Polyhedra_Library::iterator_to_const< Container >::operator-- | ( | ) | [inline] |
Prefix decrement operator.
Definition at line 77 of file iterator_to_const.inlines.hh.
References Parma_Polyhedra_Library::iterator_to_const< Container >::base.
Referenced by Parma_Polyhedra_Library::iterator_to_const< Container >::operator--().
00077 { 00078 --base; 00079 return *this; 00080 }
| iterator_to_const< Container >::pointer Parma_Polyhedra_Library::iterator_to_const< Container >::operator-> | ( | ) | const [inline] |
Indirect access operator.
Definition at line 56 of file iterator_to_const.inlines.hh.
References Parma_Polyhedra_Library::iterator_to_const< Container >::base.
00056 { 00057 return &*base; 00058 }
| bool Parma_Polyhedra_Library::iterator_to_const< Container >::operator== | ( | const iterator_to_const< Container > & | y | ) | const [inline] |
Returns true if and only if *this and y are identical.
Definition at line 92 of file iterator_to_const.inlines.hh.
References Parma_Polyhedra_Library::iterator_to_const< Container >::base.
Referenced by Parma_Polyhedra_Library::iterator_to_const< Container >::operator!=().
00092 { 00093 return base == y.base; 00094 }
friend class const_iterator_to_const< Container > [friend] |
Definition at line 66 of file iterator_to_const.defs.hh.
friend class Powerset [friend] |
Definition at line 67 of file iterator_to_const.defs.hh.
Base Parma_Polyhedra_Library::iterator_to_const< Container >::base [private] |
A (mutable) iterator on the sequence of elements.
Definition at line 61 of file iterator_to_const.defs.hh.
Referenced by Parma_Polyhedra_Library::Powerset< D >::collapse(), Parma_Polyhedra_Library::Powerset< D >::drop_disjunct(), Parma_Polyhedra_Library::Powerset< D >::drop_disjuncts(), Parma_Polyhedra_Library::iterator_to_const< Container >::operator*(), Parma_Polyhedra_Library::iterator_to_const< Container >::operator++(), Parma_Polyhedra_Library::iterator_to_const< Container >::operator--(), Parma_Polyhedra_Library::iterator_to_const< Container >::operator->(), and Parma_Polyhedra_Library::iterator_to_const< Container >::operator==().
1.6.3