gravatar
deba@inf.elte.hu
deba@inf.elte.hu
Icc compatibility fixes (ticket #84)
0 2 0
default
2 files changed with 13 insertions and 3 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -203,32 +203,42 @@
203 203
        Sequence seq;
204 204
        
205 205
        for (MapArcIt it(graph); it != INVALID; ++it) {
206 206
          seq.push_back(std::make_pair(it, in[it]));
207 207
        }
208 208

	
209 209
        std::sort(seq.begin(), seq.end(), PairComp<Sequence>());
210 210
        return KruskalOutputSelector<Graph, Sequence, Out>::
211 211
          kruskal(graph, seq, out);
212 212
      }
213 213
    };
214 214

	
215
    template <typename T>
216
    struct RemoveConst {
217
      typedef T type;
218
    };
219

	
220
    template <typename T>
221
    struct RemoveConst<const T> {
222
      typedef T type;
223
    };
224

	
215 225
    template <typename Graph, typename In, typename Out>
216 226
    struct KruskalOutputSelector<Graph, In, Out,
217 227
      typename enable_if<SequenceOutputIndicator<Out>, void>::type > 
218 228
    {
219 229
      typedef typename In::value_type::second_type Value;
220 230

	
221 231
      static Value kruskal(const Graph& graph, const In& in, Out& out) {
222
        typedef StoreBoolMap<Out> Map;
232
        typedef StoreBoolMap<typename RemoveConst<Out>::type> Map;
223 233
        Map map(out);
224 234
        return _kruskal_bits::kruskal(graph, in, map);
225 235
      }
226 236

	
227 237
    };
228 238

	
229 239
    template <typename Graph, typename In, typename Out>
230 240
    struct KruskalOutputSelector<Graph, In, Out,
231 241
      typename enable_if<MapOutputIndicator<Out>, void>::type > 
232 242
    {
233 243
      typedef typename In::value_type::second_type Value;
234 244

	
Ignore white space 24 line context
... ...
@@ -76,25 +76,25 @@
76 76
  {
77 77
    checkConcept<ReadWriteMap<A,B>, NullMap<A,B> >();
78 78
    NullMap<A,B> map1;
79 79
    NullMap<A,B> map2 = map1;
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 86
    checkConcept<ReadWriteMap<A,C>, ConstMap<A,C> >();
87 87
    ConstMap<A,B> map1;
88
    ConstMap<A,B> map2(B());
88
    ConstMap<A,B> map2 = B();
89 89
    ConstMap<A,B> map3 = map1;
90 90
    map1 = constMap<A>(B());
91 91
    map1 = constMap<A,B>();
92 92
    map1.setAll(B());
93 93
    ConstMap<A,C> map4(C(1));
94 94
    ConstMap<A,C> map5 = map4;
95 95
    map4 = constMap<A>(C(2));
96 96
    map4.setAll(C(3));
97 97

	
98 98
    checkConcept<ReadWriteMap<A,int>, ConstMap<A,int> >();
99 99
    check(constMap<A>(10)[A()] == 10, "Something is wrong with ConstMap");
100 100

	
... ...
@@ -134,25 +134,25 @@
134 134
    std::vector<double> v(10, 0);
135 135
    v[5] = 100;
136 136
    RangeMap<double> map8(v);
137 137
    RangeMap<double> map9 = rangeMap(v);
138 138
    check(map9.size() == 10 && map9[2] == 0 && map9[5] == 100,
139 139
          "Something is wrong with RangeMap");
140 140
  }
141 141

	
142 142
  // SparseMap
143 143
  {
144 144
    checkConcept<ReferenceMap<A,B,B&,const B&>, SparseMap<A,B> >();
145 145
    SparseMap<A,B> map1;
146
    SparseMap<A,B> map2(B());
146
    SparseMap<A,B> map2 = B();
147 147
    SparseMap<A,B> map3 = sparseMap<A,B>();
148 148
    SparseMap<A,B> map4 = sparseMap<A>(B());
149 149

	
150 150
    checkConcept< ReferenceMap<double, int, int&, const int&>,
151 151
                  SparseMap<double, int> >();
152 152
    std::map<double, int> m;
153 153
    SparseMap<double, int> map5(m);
154 154
    SparseMap<double, int> map6(m,10);
155 155
    SparseMap<double, int> map7 = sparseMap(m);
156 156
    SparseMap<double, int> map8 = sparseMap(m,10);
157 157

	
158 158
    check(map5[1.0] == 0 && map5[3.14] == 0 && map6[1.0] == 10 && map6[3.14] == 10,
0 comments (0 inline)