lemon/dfs.h
changeset 2386 81b47fc5c444
parent 2376 0ed45a6c74b1
child 2391 14a343be7a5a
     1.1 --- a/lemon/dfs.h	Fri Mar 02 17:56:22 2007 +0000
     1.2 +++ b/lemon/dfs.h	Fri Mar 02 18:04:28 2007 +0000
     1.3 @@ -858,8 +858,8 @@
     1.4      /// \param g is the initial value of  \ref _g
     1.5      /// \param s is the initial value of  \ref _source
     1.6      DfsWizardBase(const GR &g, Node s=INVALID) :
     1.7 -      _g((void *)&g), _reached(0), _processed(0), _pred(0),
     1.8 -      _dist(0), _source(s) {}
     1.9 +      _g(reinterpret_cast<void*>(const_cast<GR*>(&g))), 
    1.10 +      _reached(0), _processed(0), _pred(0), _dist(0), _source(s) {}
    1.11  
    1.12    };
    1.13    
    1.14 @@ -933,11 +933,15 @@
    1.15      void run()
    1.16      {
    1.17        if(Base::_source==INVALID) throw UninitializedParameter();
    1.18 -      Dfs<Graph,TR> alg(*(Graph*)Base::_g);
    1.19 -      if(Base::_reached) alg.reachedMap(*(ReachedMap*)Base::_reached);
    1.20 -      if(Base::_processed) alg.processedMap(*(ProcessedMap*)Base::_processed);
    1.21 -      if(Base::_pred) alg.predMap(*(PredMap*)Base::_pred);
    1.22 -      if(Base::_dist) alg.distMap(*(DistMap*)Base::_dist);
    1.23 +      Dfs<Graph,TR> alg(*reinterpret_cast<const Graph*>(Base::_g));
    1.24 +      if(Base::_reached) 
    1.25 +        alg.reachedMap(*reinterpret_cast<ReachedMap*>(Base::_reached));
    1.26 +      if(Base::_processed) 
    1.27 +        alg.processedMap(*reinterpret_cast<ProcessedMap*>(Base::_processed));
    1.28 +      if(Base::_pred) 
    1.29 +        alg.predMap(*reinterpret_cast<PredMap*>(Base::_pred));
    1.30 +      if(Base::_dist) 
    1.31 +        alg.distMap(*reinterpret_cast<DistMap*>(Base::_dist));
    1.32        alg.run(Base::_source);
    1.33      }
    1.34  
    1.35 @@ -967,7 +971,7 @@
    1.36      template<class T>
    1.37      DfsWizard<DefPredMapBase<T> > predMap(const T &t) 
    1.38      {
    1.39 -      Base::_pred=(void *)&t;
    1.40 +      Base::_pred=reinterpret_cast<void*>(const_cast<T*>(&t));
    1.41        return DfsWizard<DefPredMapBase<T> >(*this);
    1.42      }
    1.43      
    1.44 @@ -988,7 +992,7 @@
    1.45      template<class T>
    1.46      DfsWizard<DefReachedMapBase<T> > reachedMap(const T &t) 
    1.47      {
    1.48 -      Base::_pred=(void *)&t;
    1.49 +      Base::_pred=reinterpret_cast<void*>(const_cast<T*>(&t));
    1.50        return DfsWizard<DefReachedMapBase<T> >(*this);
    1.51      }
    1.52      
    1.53 @@ -1009,7 +1013,7 @@
    1.54      template<class T>
    1.55      DfsWizard<DefProcessedMapBase<T> > processedMap(const T &t) 
    1.56      {
    1.57 -      Base::_pred=(void *)&t;
    1.58 +      Base::_pred=reinterpret_cast<void*>(const_cast<T*>(&t));
    1.59        return DfsWizard<DefProcessedMapBase<T> >(*this);
    1.60      }
    1.61      
    1.62 @@ -1029,7 +1033,7 @@
    1.63      template<class T>
    1.64      DfsWizard<DefDistMapBase<T> > distMap(const T &t) 
    1.65      {
    1.66 -      Base::_dist=(void *)&t;
    1.67 +      Base::_dist=reinterpret_cast<void*>(const_cast<T*>(&t));
    1.68        return DfsWizard<DefDistMapBase<T> >(*this);
    1.69      }
    1.70