equal
  deleted
  inserted
  replaced
  
    
    
    15  */  | 
    15  */  | 
    16   | 
    16   | 
    17 #ifndef LEMON_CONCEPT_MAPS_H  | 
    17 #ifndef LEMON_CONCEPT_MAPS_H  | 
    18 #define LEMON_CONCEPT_MAPS_H  | 
    18 #define LEMON_CONCEPT_MAPS_H  | 
    19   | 
    19   | 
         | 
    20 #include <lemon/utility.h>  | 
    20 #include <lemon/concept_check.h>  | 
    21 #include <lemon/concept_check.h>  | 
    21   | 
    22   | 
    22 ///\ingroup concept  | 
    23 ///\ingroup concept  | 
    23 ///\file  | 
    24 ///\file  | 
    24 ///\brief Map concepts checking classes for testing and documenting.  | 
    25 ///\brief Map concepts checking classes for testing and documenting.  | 
    95   | 
    96   | 
    96 	Value& val;  | 
    97 	Value& val;  | 
    97 	typename _WriteMap::Value own_val;  | 
    98 	typename _WriteMap::Value own_val;  | 
    98 	Key& key;  | 
    99 	Key& key;  | 
    99 	typename _WriteMap::Key& own_key;  | 
   100 	typename _WriteMap::Key& own_key;  | 
   100 	WriteMap& m;  | 
   101 	_WriteMap& m;  | 
   101   | 
   102   | 
   102       };  | 
   103       };  | 
   103     };  | 
   104     };  | 
   104   | 
   105   | 
   105     ///Read/Writable map concept  | 
   106     ///Read/Writable map concept  | 
   120   | 
   121   | 
   121       template<typename _ReadWriteMap>  | 
   122       template<typename _ReadWriteMap>  | 
   122       struct Constraints { | 
   123       struct Constraints { | 
   123 	void constraints() { | 
   124 	void constraints() { | 
   124 	  checkConcept<ReadMap<K, T>, _ReadWriteMap >();  | 
   125 	  checkConcept<ReadMap<K, T>, _ReadWriteMap >();  | 
   125 	  checkConcept<ReadMap<K, T>, _ReadWriteMap >();  | 
   126 	  checkConcept<WriteMap<K, T>, _ReadWriteMap >();  | 
   126 	}  | 
   127 	}  | 
   127       };  | 
   128       };  | 
   128     };  | 
   129     };  | 
   129     | 
   130     | 
   130     | 
   131     | 
   131     ///Dereferable map concept  | 
   132     ///Dereferable map concept  | 
   132     template<typename K, typename T, typename R, typename CR>  | 
   133     template<typename K, typename T, typename R, typename CR>  | 
   133     class ReferenceMap : public ReadWriteMap<K,T>  | 
   134     class ReferenceMap : public ReadWriteMap<K,T>  | 
   134     { | 
   135     { | 
   135     public:  | 
   136     public:  | 
         | 
   137       /// Tag for reference maps.  | 
         | 
   138       typedef True ReferenceMapTag;  | 
   136       /// Map's key type.  | 
   139       /// Map's key type.  | 
   137       typedef K Key;      | 
   140       typedef K Key;      | 
   138       /// Map's value type. (The type of objects associated with the keys).  | 
   141       /// Map's value type. (The type of objects associated with the keys).  | 
   139       typedef T Value;  | 
   142       typedef T Value;  | 
   140       /// Map's reference type.  | 
   143       /// Map's reference type.  | 
   174 	typename _ReferenceMap::Value& own_val;  | 
   177 	typename _ReferenceMap::Value& own_val;  | 
   175 	typename _ReferenceMap::Reference& own_ref;  | 
   178 	typename _ReferenceMap::Reference& own_ref;  | 
   176 	Key& key;  | 
   179 	Key& key;  | 
   177 	Value& val;  | 
   180 	Value& val;  | 
   178 	Reference& ref;  | 
   181 	Reference& ref;  | 
   179 	ReferenceMap& m;  | 
   182 	_ReferenceMap& m;  | 
   180       };  | 
   183       };  | 
   181     };  | 
   184     };  | 
   182   | 
   185   | 
   183     // @}  | 
   186     // @}  | 
   184   | 
   187   |