common/hierarchiciterator.hh

00001 #ifndef DUNE_GRID_HIERARCHICITERATOR_HH
00002 #define DUNE_GRID_HIERARCHICITERATOR_HH
00003 
00004 #include "entitypointer.hh"
00005 
00006 namespace Dune {
00007 
00022 template<class GridImp, template<class> class HierarchicIteratorImp>
00023 class HierarchicIterator :
00024     public EntityPointer<GridImp, HierarchicIteratorImp<GridImp> >
00025 {
00026 public:
00027   typedef typename GridImp::template Codim<0>::Entity Entity;
00033   HierarchicIterator& operator++()
00034     {
00035       this->realIterator.increment();
00036       return *this;
00037     }
00038   
00039   //===========================================================
00043   //===========================================================
00044 
00047   HierarchicIterator (const HierarchicIteratorImp<const GridImp> & i) :
00048     EntityPointer<GridImp,HierarchicIteratorImp<GridImp> >(i) {};
00050 };
00051 
00052 //**********************************************************************
00058 template<class GridImp, template<class> class HierarchicIteratorImp>
00059 class HierarchicIteratorDefaultImplementation
00060 {
00061 public:
00063   HierarchicIteratorDefaultImplementation() DUNE_DEPRECATED {}
00064 
00065 private:
00066   // Barton-Nackman trick
00067   HierarchicIteratorImp<GridImp>& asImp ()
00068     {return static_cast<HierarchicIteratorImp<GridImp>&>(*this);}
00069   const HierarchicIteratorImp<GridImp>& asImp () const
00070     {return static_cast<const HierarchicIteratorImp<GridImp>&>(*this);}
00071 } DUNE_DEPRECATED;
00072 
00073 }
00074 
00075 #endif // DUNE_GRID_HIERARCHICITERATOR_HH

Generated on Tue Jul 28 22:28:18 2009 for dune-grid by  doxygen 1.5.6