... | ... |
@@ -116,7 +116,7 @@ |
116 | 116 |
/// Constructor with specified initial value |
117 | 117 |
|
118 | 118 |
/// Constructor with specified initial value. |
119 |
/// \param v |
|
119 |
/// \param v The initial value of the map. |
|
120 | 120 |
ConstMap(const Value &v) : _value(v) {} |
121 | 121 |
|
122 | 122 |
/// Gives back the specified value. |
... | ... |
@@ -143,6 +143,11 @@ |
143 | 143 |
return ConstMap<K, V>(v); |
144 | 144 |
} |
145 | 145 |
|
146 |
template<typename K, typename V> |
|
147 |
inline ConstMap<K, V> constMap() { |
|
148 |
return ConstMap<K, V>(); |
|
149 |
} |
|
150 |
|
|
146 | 151 |
|
147 | 152 |
template<typename T, T v> |
148 | 153 |
struct Const {}; |
... | ... |
@@ -613,7 +618,7 @@ |
613 | 618 |
typename K = typename F::argument_type, |
614 | 619 |
typename V = typename F::result_type> |
615 | 620 |
class FunctorToMap : public MapBase<K, V> { |
616 |
|
|
621 |
F _f; |
|
617 | 622 |
public: |
618 | 623 |
typedef MapBase<K, V> Parent; |
619 | 624 |
typedef typename Parent::Key Key; |
... | ... |
@@ -83,20 +83,27 @@ |
83 | 83 |
// ConstMap |
84 | 84 |
{ |
85 | 85 |
checkConcept<ReadWriteMap<A,B>, ConstMap<A,B> >(); |
86 |
checkConcept<ReadWriteMap<A,C>, ConstMap<A,C> >(); |
|
86 | 87 |
ConstMap<A,B> map1; |
87 | 88 |
ConstMap<A,B> map2(B()); |
88 | 89 |
ConstMap<A,B> map3 = map1; |
89 | 90 |
map1 = constMap<A>(B()); |
91 |
map1 = constMap<A,B>(); |
|
90 | 92 |
map1.setAll(B()); |
93 |
ConstMap<A,C> map4(C(1)); |
|
94 |
ConstMap<A,C> map5 = map4; |
|
95 |
map4 = constMap<A>(C(2)); |
|
96 |
map4.setAll(C(3)); |
|
91 | 97 |
|
92 | 98 |
checkConcept<ReadWriteMap<A,int>, ConstMap<A,int> >(); |
93 | 99 |
check(constMap<A>(10)[A()] == 10, "Something is wrong with ConstMap"); |
94 | 100 |
|
95 | 101 |
checkConcept<ReadWriteMap<A,int>, ConstMap<A,Const<int,10> > >(); |
96 |
ConstMap<A,Const<int,10> > map4; |
|
97 |
ConstMap<A,Const<int,10> > map5 = map4; |
|
98 |
map4 = map5; |
|
99 |
check(map4[A()] == 10 && map5[A()] == 10, "Something is wrong with ConstMap"); |
|
102 |
ConstMap<A,Const<int,10> > map6; |
|
103 |
ConstMap<A,Const<int,10> > map7 = map6; |
|
104 |
map6 = constMap<A,int,10>(); |
|
105 |
map7 = constMap<A,Const<int,10> >(); |
|
106 |
check(map6[A()] == 10 && map7[A()] == 10, "Something is wrong with ConstMap"); |
|
100 | 107 |
} |
101 | 108 |
|
102 | 109 |
// IdentityMap |
0 comments (0 inline)