4 #ifndef DUNE_PROPERTYMAP_HH
5 #define DUNE_PROPERTYMAP_HH
79 template<
class Reference,
class PropertyMap>
83 template<
class Reference,
class PropertyMap,
class Key>
88 return static_cast<const PropertyMap&
>(pmap)[key];
91 template<
class Reference,
class PropertyMap,
class Key,
class Value>
94 const Key& key,
const Value& value)
97 ::exists),
"WritablePropertyMapTag required!");
98 static_cast<const PropertyMap&
>(pmap)[key] = value;
104 template<
class RAI,
class IM,
105 class T =
typename std::iterator_traits<RAI>::value_type,
106 class R =
typename std::iterator_traits<RAI>::reference>
152 : iter_(iter), indexMap_(im)
157 : iter_(), indexMap_()
163 return *(iter_ +
get(indexMap_, key));
180 AssociativePropertyMap<T> >
185 typedef T UniqueAssociativeContainer;
190 typedef typename UniqueAssociativeContainer::value_type::first_type
196 typedef typename UniqueAssociativeContainer::value_type::second_type
202 typedef ValueType& Reference;
223 inline Reference operator[](KeyType key)
const
225 return map_->find(key)->second;
228 UniqueAssociativeContainer* map_;
238 ConstAssociativePropertyMap<T> >
243 typedef T UniqueAssociativeContainer;
248 typedef typename UniqueAssociativeContainer::value_type::first_type
254 typedef typename UniqueAssociativeContainer::value_type::second_type
260 typedef const ValueType& Reference;
281 inline Reference operator[](KeyType key)
const
283 return map_->find(key)->second;
286 const UniqueAssociativeContainer* map_;
319 template<
typename T,
typename C>