Changeset 1082
- Timestamp:
- Feb 13, 2008, 1:50:45 PM (16 years ago)
- Location:
- trunk/yat/utility
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/yat/utility/Iterator.h
r1080 r1082 42 42 template<typename Container, typename weighted_tag, typename value, 43 43 typename pointer = value*, typename reference = value&, 44 class Policy = IteratorPolicy<Container, reference > >44 class Policy = IteratorPolicy<Container, reference, value> > 45 45 class Iterator 46 46 : public std::iterator<std::random_access_iterator_tag, value, size_t, … … 51 51 52 52 private: 53 typedef Iterator<Container, weighted_tag, value, pointer, reference> self; 53 typedef Iterator<Container, weighted_tag, value, pointer, reference, 54 Policy> self; 54 55 55 56 public: … … 68 69 Iterator(Container& container, size_t row, size_t column) 69 70 : container_(&container), index_(row*container.columns()+column) {} 71 72 /** 73 \return data 74 */ 75 typename Policy::data_type data(void) const 76 { yat_assert<std::out_of_range>(index_<this->size(), 77 "Iterator::data"); 78 return ip_.data(*container_, row(index_), column(index_)); 79 } 80 81 /** 82 \return weight 83 */ 84 typename Policy::weight_type weight(void) const 85 { yat_assert<std::out_of_range>(index_<this->size(), 86 "Iterator::weight"); 87 return ip_.weight(*container_, row(index_), column(index_)); 88 } 70 89 71 90 /** -
trunk/yat/utility/IteratorPolicy.h
r1080 r1082 32 32 \brief Default policy for Iterator 33 33 */ 34 template<class Container, typename reference >34 template<class Container, typename reference, typename weight_t> 35 35 struct IteratorPolicy 36 36 { 37 typedef reference data_type; 38 typedef weight_t weight_type; 39 40 data_type data(const Container& c, size_t row, size_t column) const 41 { 42 return c(row, column); 43 } 44 37 45 reference dereference(const Container& c, size_t row, size_t column) const 38 46 { 39 47 return c(row, column); 40 48 } 49 50 weight_type weight(const Container& c, size_t row, size_t column) const 51 { 52 return 1.0; 53 } 54 41 55 }; 42 56 }}} // of namespace utility, yat, and theplu
Note: See TracChangeset
for help on using the changeset viewer.