2 #ifndef DUNE_PROPERTYMAP_HH
3 #define DUNE_PROPERTYMAP_HH
77 template<
class Reference,
class PropertyMap>
81 template<
class Reference,
class PropertyMap,
class Key>
86 return static_cast<const PropertyMap&
>(pmap)[key];
89 template<
class Reference,
class PropertyMap,
class Key,
class Value>
92 const Key& key,
const Value& value)
95 ::exists),
"WritablePropertyMapTag required!");
96 static_cast<const PropertyMap&
>(pmap)[key] = value;
102 template<
class RAI,
class IM,
103 class T =
typename std::iterator_traits<RAI>::value_type,
104 class R =
typename std::iterator_traits<RAI>::reference>
150 :iter_(iter), indexMap_(im)
155 : iter_(), indexMap_()
161 return *(iter_ +
get(indexMap_, key));
178 AssociativePropertyMap<T> >
183 typedef T UniqueAssociativeContainer;
188 typedef typename UniqueAssociativeContainer::value_type::first_type
194 typedef typename UniqueAssociativeContainer::value_type::second_type
200 typedef ValueType& Reference;
221 inline Reference operator[](KeyType key)
const
223 return map_->find(key)->second;
226 UniqueAssociativeContainer* map_;
236 ConstAssociativePropertyMap<T> >
241 typedef T UniqueAssociativeContainer;
246 typedef typename UniqueAssociativeContainer::value_type::first_type
252 typedef typename UniqueAssociativeContainer::value_type::second_type
258 typedef const ValueType& Reference;
279 inline Reference operator[](KeyType key)
const
281 return map_->find(key)->second;
284 const UniqueAssociativeContainer* map_;
317 template<
typename T,
typename C>