dune-grid  2.2.0
common/leafiterator.hh
Go to the documentation of this file.
00001 #ifndef DUNE_GRID_LEAFITERATOR_HH
00002 #define DUNE_GRID_LEAFITERATOR_HH
00003 
00004 #include <cstddef>
00005 #include <iterator>
00006 
00007 #include <dune/grid/common/entityiterator.hh>
00008 #include <dune/grid/common/gridenums.hh>
00009 
00010 namespace Dune
00011 {
00012 
00013 /**********************************************************************/
00024 template<int codim, PartitionIteratorType pitype, class GridImp,
00025          template<int,PartitionIteratorType,class> class LeafIteratorImp>
00026 class LeafIterator
00027 : public EntityIterator< codim, GridImp, LeafIteratorImp< codim, pitype, GridImp > >
00028 {
00029   typedef EntityIterator< codim, GridImp, LeafIteratorImp< codim, pitype, GridImp > > Base;
00030 
00031 public:
00033   LeafIterator& operator++()
00034     {
00035       ++static_cast< Base & >( *this );
00036       this->realIterator.increment();
00037       return *this;
00038     }
00039 
00040   //===========================================================
00044   //===========================================================
00045 
00047   LeafIterator (const LeafIteratorImp<codim, pitype, const GridImp> & i) DUNE_DEPRECATED
00048   : Base( i )
00049   {}
00051 };
00052 
00053 }
00054 
00055 namespace std {
00056 
00057   template
00058   < int codim, Dune::PartitionIteratorType pitype, class GridImp,
00059     template<int,Dune::PartitionIteratorType,class> class LeafIteratorImp>
00060   struct iterator_traits<Dune::LeafIterator<codim, pitype, GridImp,
00061                                             LeafIteratorImp> > {
00062     typedef ptrdiff_t difference_type;
00063     typedef const typename Dune::LeafIterator<codim, pitype, GridImp,
00064        LeafIteratorImp>::Entity value_type;
00065     typedef value_type* pointer;
00066     typedef value_type& reference;
00067     typedef forward_iterator_tag iterator_category;
00068   };
00069 
00070 } // namespace std
00071 
00072 #endif // DUNE_GRID_LEAFITERATOR_HH