dune-grid  2.2.0
common/leveliterator.hh
Go to the documentation of this file.
00001 #ifndef DUNE_GRID_LEVELITERATOR_HH
00002 #define DUNE_GRID_LEVELITERATOR_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 /**********************************************************************/
00023 template<int codim, PartitionIteratorType pitype, class GridImp,
00024          template<int,PartitionIteratorType,class> class LevelIteratorImp>
00025 class LevelIterator
00026 : public EntityIterator< codim, GridImp, LevelIteratorImp< codim, pitype, GridImp > >
00027 {
00028   typedef EntityIterator< codim, GridImp, LevelIteratorImp< codim, pitype, GridImp > > Base;
00029 
00030 public:
00036   LevelIterator& operator++()
00037     {
00038       ++static_cast< Base & >( *this );
00039       return *this;
00040     }
00041   
00042   //===========================================================
00046   //===========================================================
00047 
00050   LevelIterator(const LevelIteratorImp<codim,pitype,const GridImp> & i) DUNE_DEPRECATED
00051   : Base( i )
00052   {}
00054 };
00055 
00056 }
00057 
00058 namespace std {
00059 
00060   template
00061   < int codim, Dune::PartitionIteratorType pitype, class GridImp,
00062     template<int,Dune::PartitionIteratorType,class> class LevelIteratorImp>
00063   struct iterator_traits<Dune::LevelIterator<codim, pitype, GridImp,
00064                                              LevelIteratorImp> > {
00065     typedef ptrdiff_t difference_type;
00066     typedef const typename Dune::LevelIterator<codim, pitype, GridImp,
00067        LevelIteratorImp>::Entity value_type;
00068     typedef value_type* pointer;
00069     typedef value_type& reference;
00070     typedef forward_iterator_tag iterator_category;
00071   };
00072 
00073 } // namespace std
00074 
00075 #endif // DUNE_GRID_LEVELITERATOR_HH