dune-grid
2.1.1
|
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