166 { |
166 { |
167 template<typename... Ts> |
167 template<typename... Ts> |
168 MapItemsIterator(Ts&&... args) : IteratorType{args...} {} |
168 MapItemsIterator(Ts&&... args) : IteratorType{args...} {} |
169 auto operator*() const |
169 auto operator*() const |
170 { |
170 { |
171 return KeyValuePair<K, V>{this->key(), this->value()}; |
171 return KeyValuePair<const K&, V&>{this->key(), this->value()}; |
172 } |
172 } |
173 }; |
173 }; |
174 |
174 |
175 template<typename K, typename V, typename MapType, typename IteratorType> |
175 template<typename K, typename V, typename MapType, typename IteratorType> |
176 struct MapItems |
176 struct MapItems |