Parma_Polyhedra_Library::Powerset< D >::omega_iterator Class Reference
[C++ Language Interface]

An iterator on the disjuncts of a Powerset element. More...

#include <Powerset.defs.hh>

List of all members.

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

 omega_iterator ()
 Default constructor.
 omega_iterator (const omega_iterator &y)
 Copy constructor.
reference operator* () const
 Dereference operator.
pointer operator-> () const
 Indirect access operator.
omega_iteratoroperator++ ()
 Prefix increment operator.
omega_iterator operator++ (int)
 Postfix increment operator.
omega_iteratoroperator-- ()
 Prefix decrement operator.
omega_iterator operator-- (int)
 Postfix decrement operator.
bool operator== (const omega_iterator &y) const
 Returns true if and only if *this and y are identical.
bool operator!= (const omega_iterator &y) const
 Returns true if and only if *this and y are different.

Protected Types

typedef
Powerset::Sequence::iterator 
Base
 The type of the underlying mutable iterator.
typedef std::iterator_traits
< typename
Powerset::Sequence::const_iterator > 
Traits
 A shortcut for naming the const_iterator traits.

Protected Member Functions

 omega_iterator (const Base &b)
 Constructs from the lower-level iterator.
friend Powerset (const omega_iterator &y)

Protected Attributes

Base base
 A (mutable) iterator on the sequence of elements.

Friends

class Powerset


Detailed Description

template<typename D>
class Parma_Polyhedra_Library::Powerset< D >::omega_iterator

An iterator on the disjuncts of a Powerset element.

This class implements a read-only bidirectional iterator on the sequence of disjuncts. That is, by using an instance of this iterator class it is not possible to overwrite the disjuncts contained in a Powerset element. However, using such an instance allows for the removal of disjuncts by using methods Powerset::drop_disjunct(iterator position) and Powerset::drop_disjuncts(iterator first, iterator last). Such a policy is needed to allow for a reliable use of the Boolean flag Powerset::reduced.

Note:
For any developers' need, (low-level) iterators on the sequence of disjuncts are still available by accessing the protected member Powerset::sequence.

Definition at line 512 of file Powerset.defs.hh.


Member Typedef Documentation

template<typename D>
typedef Powerset::Sequence::iterator Parma_Polyhedra_Library::Powerset< D >::omega_iterator::Base [protected]

The type of the underlying mutable iterator.

Definition at line 515 of file Powerset.defs.hh.

template<typename D>
typedef std::iterator_traits<typename Powerset::Sequence::const_iterator> Parma_Polyhedra_Library::Powerset< D >::omega_iterator::Traits [protected]

A shortcut for naming the const_iterator traits.

Definition at line 519 of file Powerset.defs.hh.

template<typename D>
typedef Traits::iterator_category Parma_Polyhedra_Library::Powerset< D >::omega_iterator::iterator_category

Definition at line 534 of file Powerset.defs.hh.

template<typename D>
typedef Traits::value_type Parma_Polyhedra_Library::Powerset< D >::omega_iterator::value_type

Definition at line 535 of file Powerset.defs.hh.

template<typename D>
typedef Traits::difference_type Parma_Polyhedra_Library::Powerset< D >::omega_iterator::difference_type

Definition at line 536 of file Powerset.defs.hh.

template<typename D>
typedef Traits::pointer Parma_Polyhedra_Library::Powerset< D >::omega_iterator::pointer

Definition at line 537 of file Powerset.defs.hh.

template<typename D>
typedef Traits::reference Parma_Polyhedra_Library::Powerset< D >::omega_iterator::reference

Definition at line 538 of file Powerset.defs.hh.


Constructor & Destructor Documentation

template<typename D>
Parma_Polyhedra_Library::Powerset< D >::omega_iterator::omega_iterator ( const Base b  )  [inline, protected]

Constructs from the lower-level iterator.

Definition at line 45 of file Powerset.inlines.hh.

00046   : base(b) {
00047 }

template<typename D>
Parma_Polyhedra_Library::Powerset< D >::omega_iterator::omega_iterator (  )  [inline]

Default constructor.

Definition at line 33 of file Powerset.inlines.hh.

00034   : base() {
00035 }

template<typename D>
Parma_Polyhedra_Library::Powerset< D >::omega_iterator::omega_iterator ( const omega_iterator y  )  [inline]

Copy constructor.

Definition at line 39 of file Powerset.inlines.hh.

00040   : base(y.base) {
00041 }


Member Function Documentation

template<typename D>
Parma_Polyhedra_Library::Powerset< D >::omega_iterator::Powerset ( const omega_iterator y  )  [protected]

template<typename D>
Powerset< D >::omega_iterator::reference Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator* (  )  const [inline]

Dereference operator.

Definition at line 51 of file Powerset.inlines.hh.

References Parma_Polyhedra_Library::Powerset< D >::omega_iterator::base.

00051                                            {
00052   return *base;
00053 }

template<typename D>
Powerset< D >::omega_iterator::pointer Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator-> (  )  const [inline]

Indirect access operator.

Definition at line 57 of file Powerset.inlines.hh.

References Parma_Polyhedra_Library::Powerset< D >::omega_iterator::base.

00057                                             {
00058   return &*base;
00059 }

template<typename D>
Powerset< D >::omega_iterator & Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator++ (  )  [inline]

Prefix increment operator.

Definition at line 63 of file Powerset.inlines.hh.

References Parma_Polyhedra_Library::Powerset< D >::omega_iterator::base.

Referenced by Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator++().

00063                                       {
00064   ++base;
00065   return *this;
00066 }

template<typename D>
Powerset< D >::omega_iterator Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator++ ( int   )  [inline]

Postfix increment operator.

Definition at line 70 of file Powerset.inlines.hh.

References Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator++().

00070                                          {
00071   omega_iterator tmp = *this;
00072   operator++();
00073   return tmp;
00074 }

template<typename D>
Powerset< D >::omega_iterator & Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator-- (  )  [inline]

Prefix decrement operator.

Definition at line 78 of file Powerset.inlines.hh.

References Parma_Polyhedra_Library::Powerset< D >::omega_iterator::base.

Referenced by Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator--().

00078                                       {
00079   --base;
00080   return *this;
00081 }

template<typename D>
Powerset< D >::omega_iterator Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator-- ( int   )  [inline]

Postfix decrement operator.

Definition at line 85 of file Powerset.inlines.hh.

References Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator--().

00085                                          {
00086   omega_iterator tmp = *this;
00087   operator--();
00088   return tmp;
00089 }

template<typename D>
bool Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator== ( const omega_iterator y  )  const [inline]

Returns true if and only if *this and y are identical.

Definition at line 93 of file Powerset.inlines.hh.

References Parma_Polyhedra_Library::Powerset< D >::omega_iterator::base.

Referenced by Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator!=().

00093                                                                    {
00094   return base == y.base;
00095 }

template<typename D>
bool Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator!= ( const omega_iterator y  )  const [inline]

Returns true if and only if *this and y are different.

Definition at line 99 of file Powerset.inlines.hh.

References Parma_Polyhedra_Library::Powerset< D >::omega_iterator::operator==().

00099                                                                    {
00100   return !operator==(y);
00101 }


Friends And Related Function Documentation

template<typename D>
friend class Powerset [friend]

Definition at line 527 of file Powerset.defs.hh.


Member Data Documentation

template<typename D>
Base Parma_Polyhedra_Library::Powerset< D >::omega_iterator::base [protected]


The documentation for this class was generated from the following files:

Generated on Wed Jul 16 22:55:51 2008 for PPL by  doxygen 1.5.6