| ... | ... |
@@ -113,13 +113,13 @@ |
| 113 | 113 |
/// The value of the map will be default constructed. |
| 114 | 114 |
ConstMap() {}
|
| 115 | 115 |
|
| 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. |
| 123 | 123 |
Value operator[](const Key&) const { return _value; }
|
| 124 | 124 |
|
| 125 | 125 |
/// Absorbs the value. |
| ... | ... |
@@ -140,12 +140,17 @@ |
| 140 | 140 |
/// \relates ConstMap |
| 141 | 141 |
template<typename K, typename V> |
| 142 | 142 |
inline ConstMap<K, V> constMap(const V &v) {
|
| 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 {};
|
| 149 | 154 |
|
| 150 | 155 |
/// Constant map with inlined constant value. |
| 151 | 156 |
|
| ... | ... |
@@ -610,13 +615,13 @@ |
| 610 | 615 |
/// |
| 611 | 616 |
/// \sa MapToFunctor |
| 612 | 617 |
template<typename F, |
| 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; |
| 620 | 625 |
typedef typename Parent::Value Value; |
| 621 | 626 |
|
| 622 | 627 |
/// Constructor |
| ... | ... |
@@ -80,26 +80,33 @@ |
| 80 | 80 |
map1 = nullMap<A,B>(); |
| 81 | 81 |
} |
| 82 | 82 |
|
| 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 |
| 103 | 110 |
{
|
| 104 | 111 |
checkConcept<ReadMap<A,A>, IdentityMap<A> >(); |
| 105 | 112 |
IdentityMap<A> map1; |
0 comments (0 inline)