Changeset 732:33cbc0635e92 in lemon-0.x for src/hugo/skeletons/maps.h
- Timestamp:
- 07/22/04 21:59:18 (20 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@988
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/hugo/skeletons/maps.h
r539 r732 13 13 /// Readable map concept 14 14 template<typename K, typename T> 15 class Read ableMap15 class ReadMap 16 16 { 17 17 public: … … 24 24 ValueType operator[](const KeyType &k) const {return ValueType();} 25 25 26 /// Copy contsructor. (optional) 27 ReadableMap(const ReadableMap&) {} 28 /// Assignment operator. (optional) 29 ReadableMap& operator=(const ReadableMap&) {return *this;} 30 31 ReadableMap() {} 26 ///Default constructor 27 ReadMap() {} 32 28 }; 33 29 … … 35 31 /// Writable map concept 36 32 template<typename K, typename T> 37 class Writ ableMap33 class WriteMap 38 34 { 39 35 public: … … 46 42 void set(const KeyType &k,const ValueType &t) {} 47 43 48 WritableMap() {} 44 ///Default constructor 45 WriteMap() {} 49 46 }; 50 47 51 48 ///Read/Writeable map concept 52 49 template<typename K, typename T> 53 class ReadWrit ableMap : public ReadableMap<K,T>,54 public Writ ableMap<K,T>50 class ReadWriteMap : public ReadMap<K,T>, 51 public WriteMap<K,T> 55 52 { 56 53 public: … … 65 62 void set(const KeyType &k,const ValueType &t) {} 66 63 67 /// Copy contsructor. (optional) 68 ReadWritableMap(const ReadWritableMap&) {} 69 /// Assignment operator. (optional) 70 ReadWritableMap& operator=(const ReadWritableMap&) {return *this;} 71 72 /// Facility to define a map with an other value type (optional) 73 template<typename T1> 74 struct rebind { 75 /// The type of a map with the given value type 76 typedef ReadWritableMap<K,T1> other; 77 }; 78 /// @brief Constructor that copies all keys from the other map and 79 /// assigns to them a default value (optional) 80 template<typename T1> 81 ReadWritableMap(const ReadWritableMap<K,T1> &map, const ValueType &v) {} 82 83 ReadWritableMap() {} 64 ///Default constructor 65 ReadWriteMap() {} 84 66 }; 85 67 … … 87 69 ///Dereferable map concept 88 70 template<typename K, typename T> 89 class DereferableMap : public ReadWritableMap<K,T>71 class ReferenceMap : public ReadWriteMap<K,T> 90 72 { 91 73 public: … … 94 76 /// Map's value type. (The type of objects associated with the keys). 95 77 typedef T ValueType; 96 /// Map's reference type. (Reference to an object associated with a key) 78 79 protected: 80 ValueType tmp; 81 public: 97 82 typedef ValueType& ReferenceType; 98 83 /// Map's const reference type. … … 100 85 101 86 ///Returns a reference to the value associated to a key. 102 ReferenceType operator[](const KeyType &i) ;87 ReferenceType operator[](const KeyType &i) { return tmp; } 103 88 ///Returns a const reference to the value associated to a key. 104 ConstReferenceType operator[](const KeyType &i) const; 89 ConstReferenceType operator[](const KeyType &i) const 90 { return tmp; } 105 91 /// Sets the value associated with a key. 106 92 void set(const KeyType &k,const ValueType &t) { operator[](k)=t; } 107 93 108 /// Copy contsructor. (optional) 109 DereferableMap(const DereferableMap&) {} 110 /// Assignment operator. (optional) 111 DereferableMap& operator=(const DereferableMap&) {return *this;} 112 113 /// Facility to define a map with an other value type (optional) 114 template<typename T1> 115 struct rebind { 116 /// The type of a map with the given value type 117 typedef DereferableMap<K,T1> other; 118 }; 119 /// @brief Constructor that copies all keys from the other map and 120 /// assigns to them a default value (optional) 121 template<typename T1> 122 DereferableMap(const DereferableMap<K,T1> &map, const ValueType &v) {} 123 124 DereferableMap() {} 94 ///Default constructor 95 ReferenceMap() {} 125 96 }; 126 127 128 } 129 } 97 } //namespace skeleton 98 } //namespace hugo 130 99 #endif // HUGO_MAPSKELETON_H
Note: See TracChangeset
for help on using the changeset viewer.