Changes in lemon/dijkstra.h [251:a1ffc9099c25:258:0310c8984732] in lemon-1.2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/dijkstra.h
r251 r258 332 332 333 333 template <class T> 334 struct DefPredMapTraits : public Traits {334 struct SetPredMapTraits : public Traits { 335 335 typedef T PredMap; 336 336 static PredMap *createPredMap(const Digraph &) … … 345 345 ///\ref PredMap type. 346 346 template <class T> 347 struct DefPredMap348 : public Dijkstra< Digraph, LengthMap, DefPredMapTraits<T> > {349 typedef Dijkstra< Digraph, LengthMap, DefPredMapTraits<T> > Create;347 struct SetPredMap 348 : public Dijkstra< Digraph, LengthMap, SetPredMapTraits<T> > { 349 typedef Dijkstra< Digraph, LengthMap, SetPredMapTraits<T> > Create; 350 350 }; 351 351 352 352 template <class T> 353 struct DefDistMapTraits : public Traits {353 struct SetDistMapTraits : public Traits { 354 354 typedef T DistMap; 355 355 static DistMap *createDistMap(const Digraph &) … … 364 364 ///\ref DistMap type. 365 365 template <class T> 366 struct DefDistMap367 : public Dijkstra< Digraph, LengthMap, DefDistMapTraits<T> > {368 typedef Dijkstra< Digraph, LengthMap, DefDistMapTraits<T> > Create;366 struct SetDistMap 367 : public Dijkstra< Digraph, LengthMap, SetDistMapTraits<T> > { 368 typedef Dijkstra< Digraph, LengthMap, SetDistMapTraits<T> > Create; 369 369 }; 370 370 371 371 template <class T> 372 struct DefProcessedMapTraits : public Traits {372 struct SetProcessedMapTraits : public Traits { 373 373 typedef T ProcessedMap; 374 374 static ProcessedMap *createProcessedMap(const Digraph &) … … 383 383 ///\ref ProcessedMap type. 384 384 template <class T> 385 struct DefProcessedMap386 : public Dijkstra< Digraph, LengthMap, DefProcessedMapTraits<T> > {387 typedef Dijkstra< Digraph, LengthMap, DefProcessedMapTraits<T> > Create;388 }; 389 390 struct DefDigraphProcessedMapTraits : public Traits {385 struct SetProcessedMap 386 : public Dijkstra< Digraph, LengthMap, SetProcessedMapTraits<T> > { 387 typedef Dijkstra< Digraph, LengthMap, SetProcessedMapTraits<T> > Create; 388 }; 389 390 struct SetStandardProcessedMapTraits : public Traits { 391 391 typedef typename Digraph::template NodeMap<bool> ProcessedMap; 392 392 static ProcessedMap *createProcessedMap(const Digraph &g) … … 401 401 ///\ref ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>. 402 402 ///If you don't set it explicitly, it will be automatically allocated. 403 template <class T> 404 struct DefProcessedMapToBeDefaultMap 405 : public Dijkstra< Digraph, LengthMap, DefDigraphProcessedMapTraits> { 406 typedef Dijkstra< Digraph, LengthMap, DefDigraphProcessedMapTraits> 403 struct SetStandardProcessedMap 404 : public Dijkstra< Digraph, LengthMap, SetStandardProcessedMapTraits > { 405 typedef Dijkstra< Digraph, LengthMap, SetStandardProcessedMapTraits > 407 406 Create; 408 407 }; 409 408 410 409 template <class H, class CR> 411 struct DefHeapTraits : public Traits {410 struct SetHeapTraits : public Traits { 412 411 typedef CR HeapCrossRef; 413 412 typedef H Heap; … … 426 425 ///reference type. 427 426 template <class H, class CR = typename Digraph::template NodeMap<int> > 428 struct DefHeap429 : public Dijkstra< Digraph, LengthMap, DefHeapTraits<H, CR> > {430 typedef Dijkstra< Digraph, LengthMap, DefHeapTraits<H, CR> > Create;427 struct SetHeap 428 : public Dijkstra< Digraph, LengthMap, SetHeapTraits<H, CR> > { 429 typedef Dijkstra< Digraph, LengthMap, SetHeapTraits<H, CR> > Create; 431 430 }; 432 431 433 432 template <class H, class CR> 434 struct DefStandardHeapTraits : public Traits {433 struct SetStandardHeapTraits : public Traits { 435 434 typedef CR HeapCrossRef; 436 435 typedef H Heap; … … 451 450 ///parameter and the heap's constructor waits for the cross reference. 452 451 template <class H, class CR = typename Digraph::template NodeMap<int> > 453 struct DefStandardHeap454 : public Dijkstra< Digraph, LengthMap, DefStandardHeapTraits<H, CR> > {455 typedef Dijkstra< Digraph, LengthMap, DefStandardHeapTraits<H, CR> >452 struct SetStandardHeap 453 : public Dijkstra< Digraph, LengthMap, SetStandardHeapTraits<H, CR> > { 454 typedef Dijkstra< Digraph, LengthMap, SetStandardHeapTraits<H, CR> > 456 455 Create; 457 456 }; 458 457 459 458 template <class T> 460 struct DefOperationTraitsTraits : public Traits {459 struct SetOperationTraitsTraits : public Traits { 461 460 typedef T OperationTraits; 462 461 }; … … 468 467 ///\ref OperationTraits type. 469 468 template <class T> 470 struct DefOperationTraits471 : public Dijkstra<Digraph, LengthMap, DefOperationTraitsTraits<T> > {472 typedef Dijkstra<Digraph, LengthMap, DefOperationTraitsTraits<T> >469 struct SetOperationTraits 470 : public Dijkstra<Digraph, LengthMap, SetOperationTraitsTraits<T> > { 471 typedef Dijkstra<Digraph, LengthMap, SetOperationTraitsTraits<T> > 473 472 Create; 474 473 }; … … 1206 1205 1207 1206 template<class T> 1208 struct DefPredMapBase : public Base {1207 struct SetPredMapBase : public Base { 1209 1208 typedef T PredMap; 1210 1209 static PredMap *createPredMap(const Digraph &) { return 0; }; 1211 DefPredMapBase(const TR &b) : TR(b) {}1210 SetPredMapBase(const TR &b) : TR(b) {} 1212 1211 }; 1213 1212 ///\brief \ref named-templ-param "Named parameter" … … 1217 1216 ///for setting \ref PredMap object. 1218 1217 template<class T> 1219 DijkstraWizard< DefPredMapBase<T> > predMap(const T &t)1218 DijkstraWizard<SetPredMapBase<T> > predMap(const T &t) 1220 1219 { 1221 1220 Base::_pred=reinterpret_cast<void*>(const_cast<T*>(&t)); 1222 return DijkstraWizard< DefPredMapBase<T> >(*this);1221 return DijkstraWizard<SetPredMapBase<T> >(*this); 1223 1222 } 1224 1223 1225 1224 template<class T> 1226 struct DefProcessedMapBase : public Base {1225 struct SetProcessedMapBase : public Base { 1227 1226 typedef T ProcessedMap; 1228 1227 static ProcessedMap *createProcessedMap(const Digraph &) { return 0; }; 1229 DefProcessedMapBase(const TR &b) : TR(b) {}1228 SetProcessedMapBase(const TR &b) : TR(b) {} 1230 1229 }; 1231 1230 ///\brief \ref named-templ-param "Named parameter" … … 1235 1234 ///for setting \ref ProcessedMap object. 1236 1235 template<class T> 1237 DijkstraWizard< DefProcessedMapBase<T> > processedMap(const T &t)1236 DijkstraWizard<SetProcessedMapBase<T> > processedMap(const T &t) 1238 1237 { 1239 1238 Base::_processed=reinterpret_cast<void*>(const_cast<T*>(&t)); 1240 return DijkstraWizard< DefProcessedMapBase<T> >(*this);1239 return DijkstraWizard<SetProcessedMapBase<T> >(*this); 1241 1240 } 1242 1241 1243 1242 template<class T> 1244 struct DefDistMapBase : public Base {1243 struct SetDistMapBase : public Base { 1245 1244 typedef T DistMap; 1246 1245 static DistMap *createDistMap(const Digraph &) { return 0; }; 1247 DefDistMapBase(const TR &b) : TR(b) {}1246 SetDistMapBase(const TR &b) : TR(b) {} 1248 1247 }; 1249 1248 ///\brief \ref named-templ-param "Named parameter" … … 1253 1252 ///for setting \ref DistMap object. 1254 1253 template<class T> 1255 DijkstraWizard< DefDistMapBase<T> > distMap(const T &t)1254 DijkstraWizard<SetDistMapBase<T> > distMap(const T &t) 1256 1255 { 1257 1256 Base::_dist=reinterpret_cast<void*>(const_cast<T*>(&t)); 1258 return DijkstraWizard< DefDistMapBase<T> >(*this);1257 return DijkstraWizard<SetDistMapBase<T> >(*this); 1259 1258 } 1260 1259
Note: See TracChangeset
for help on using the changeset viewer.