Changeset 257:8d76a7bf9961 in lemon for lemon/dijkstra.h
- Timestamp:
- 09/01/08 22:00:40 (16 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/dijkstra.h
r247 r257 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 }; … … 1200 1199 1201 1200 template<class T> 1202 struct DefPredMapBase : public Base {1201 struct SetPredMapBase : public Base { 1203 1202 typedef T PredMap; 1204 1203 static PredMap *createPredMap(const Digraph &) { return 0; }; 1205 DefPredMapBase(const TR &b) : TR(b) {}1204 SetPredMapBase(const TR &b) : TR(b) {} 1206 1205 }; 1207 1206 ///\brief \ref named-templ-param "Named parameter" … … 1211 1210 ///for setting \ref PredMap object. 1212 1211 template<class T> 1213 DijkstraWizard< DefPredMapBase<T> > predMap(const T &t)1212 DijkstraWizard<SetPredMapBase<T> > predMap(const T &t) 1214 1213 { 1215 1214 Base::_pred=reinterpret_cast<void*>(const_cast<T*>(&t)); 1216 return DijkstraWizard< DefPredMapBase<T> >(*this);1215 return DijkstraWizard<SetPredMapBase<T> >(*this); 1217 1216 } 1218 1217 1219 1218 template<class T> 1220 struct DefProcessedMapBase : public Base {1219 struct SetProcessedMapBase : public Base { 1221 1220 typedef T ProcessedMap; 1222 1221 static ProcessedMap *createProcessedMap(const Digraph &) { return 0; }; 1223 DefProcessedMapBase(const TR &b) : TR(b) {}1222 SetProcessedMapBase(const TR &b) : TR(b) {} 1224 1223 }; 1225 1224 ///\brief \ref named-templ-param "Named parameter" … … 1229 1228 ///for setting \ref ProcessedMap object. 1230 1229 template<class T> 1231 DijkstraWizard< DefProcessedMapBase<T> > processedMap(const T &t)1230 DijkstraWizard<SetProcessedMapBase<T> > processedMap(const T &t) 1232 1231 { 1233 1232 Base::_processed=reinterpret_cast<void*>(const_cast<T*>(&t)); 1234 return DijkstraWizard< DefProcessedMapBase<T> >(*this);1233 return DijkstraWizard<SetProcessedMapBase<T> >(*this); 1235 1234 } 1236 1235 1237 1236 template<class T> 1238 struct DefDistMapBase : public Base {1237 struct SetDistMapBase : public Base { 1239 1238 typedef T DistMap; 1240 1239 static DistMap *createDistMap(const Digraph &) { return 0; }; 1241 DefDistMapBase(const TR &b) : TR(b) {}1240 SetDistMapBase(const TR &b) : TR(b) {} 1242 1241 }; 1243 1242 ///\brief \ref named-templ-param "Named parameter" … … 1247 1246 ///for setting \ref DistMap object. 1248 1247 template<class T> 1249 DijkstraWizard< DefDistMapBase<T> > distMap(const T &t)1248 DijkstraWizard<SetDistMapBase<T> > distMap(const T &t) 1250 1249 { 1251 1250 Base::_dist=reinterpret_cast<void*>(const_cast<T*>(&t)); 1252 return DijkstraWizard< DefDistMapBase<T> >(*this);1251 return DijkstraWizard<SetDistMapBase<T> >(*this); 1253 1252 } 1254 1253
Note: See TracChangeset
for help on using the changeset viewer.