gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Bug fixes in the ReferenceMap concept.
0 1 0
default
1 file changed with 4 insertions and 6 deletions:
↑ Collapse diff ↑
Ignore white space 12 line context
... ...
@@ -52,13 +52,12 @@
52 52
      /// \bug Value shouldn't need to be default constructible.
53 53
      ///
54 54
      Value operator[](const Key &) const {return Value();}
55 55

	
56 56
      template<typename _ReadMap>
57 57
      struct Constraints {
58

	
59 58
	void constraints() {
60 59
	  Value val = m[key];
61 60
	  val = m[key];
62 61
	  typename _ReadMap::Value own_val = m[own_key]; 
63 62
	  own_val = m[own_key]; 
64 63

	
... ...
@@ -172,32 +171,31 @@
172 171
      ///Returns a const reference to the value associated with a key.
173 172
      ConstReference operator[](const Key &) const { return tmp; }
174 173
      /// Sets the value associated with a key.
175 174
      void set(const Key &k,const Value &t) { operator[](k)=t; }
176 175

	
177 176
      template<typename _ReferenceMap>
178
      struct ReferenceMapConcept {
179

	
177
      struct Constraints {
180 178
	void constraints() {
181
	  checkConcept<ReadWriteMap, _ReferenceMap >();
179
	  checkConcept<ReadWriteMap<K, T>, _ReferenceMap >();
182 180
	  m[key] = val;
183 181
	  val  = m[key];
184 182
	  m[key] = ref;
185 183
	  ref = m[key];
186 184
	  m[own_key] = own_val;
187 185
	  own_val  = m[own_key];
188 186
	  m[own_key] = own_ref;
189 187
	  own_ref = m[own_key];	  	  
190 188
	}
191 189

	
192 190
	typename _ReferenceMap::Key& own_key;
193 191
	typename _ReferenceMap::Value& own_val;
194
	typename _ReferenceMap::Reference& own_ref;
192
	typename _ReferenceMap::Reference own_ref;
195 193
	Key& key;
196 194
	Value& val;
197
	Reference& ref;
195
	Reference ref;
198 196
	_ReferenceMap& m;
199 197
      };
200 198
    };
201 199

	
202 200
    // @}
203 201

	
0 comments (0 inline)