
URL: https://svn.lrde.epita.fr/svn/oln/trunk/milena ChangeLog: 2007-10-22 Guillaume Duhamel <guillaume.duhamel@lrde.epita.fr> Fix for handle non-const. * abr.cc: Update. * abr.hh: Fix. --- abr.cc | 17 +++++++++++------ abr.hh | 18 +++++++++--------- 2 files changed, 20 insertions(+), 15 deletions(-) Index: trunk/milena/sandbox/duhamel/abr.hh =================================================================== --- trunk/milena/sandbox/duhamel/abr.hh (revision 1364) +++ trunk/milena/sandbox/duhamel/abr.hh (revision 1365) @@ -50,15 +50,15 @@ struct s_abr { s_abr (); - s_abr (const T& elt); + s_abr (T& elt); - void add_son (const T& elt); + void add_son (T& elt); void print_rec (int n) const; void print (void) const; - int search_rec(s_abr<T>** res, const T& elt); - s_abr<T>* search(const T& elt); + int search_rec(s_abr<T>** res, T& elt); + s_abr<T>* search(T& elt); - const T& elt_; + T& elt_; s_abr<T>* father_; std::list< s_abr<T>* > sons_; }; @@ -74,7 +74,7 @@ } template <typename T> - s_abr<T>::s_abr (const T& elt) + s_abr<T>::s_abr (T& elt) : elt_ (elt), father_ (0) { @@ -83,7 +83,7 @@ template <typename T> void - s_abr<T>::add_son (const T& elt) + s_abr<T>::add_son (T& elt) { s_abr<T>* s = new s_abr<T> (elt); @@ -116,7 +116,7 @@ template <typename T> int - s_abr<T>::search_rec(s_abr<T>** res, const T& elt) + s_abr<T>::search_rec(s_abr<T>** res, T& elt) { if (elt == this->elt_) { @@ -137,7 +137,7 @@ template <typename T> s_abr<T>* - s_abr<T>::search(const T& elt) + s_abr<T>::search(T& elt) { s_abr<T>* res = 0; Index: trunk/milena/sandbox/duhamel/abr.cc =================================================================== --- trunk/milena/sandbox/duhamel/abr.cc (revision 1364) +++ trunk/milena/sandbox/duhamel/abr.cc (revision 1365) @@ -37,13 +37,18 @@ int main (void) { using namespace mln; - util::s_abr<unsigned> abr (1); + unsigned elt1 = 1; + unsigned elt2 = 2; + unsigned elt3 = 3; + unsigned elt4 = 4; + unsigned elt5 = 5; + util::s_abr<unsigned> abr (elt1); - abr.add_son (2); - abr.add_son (3); + abr.add_son (elt2); + abr.add_son (elt3); abr.print (); - util::s_abr<unsigned>* abr2 = abr.search (2); - abr2->add_son (4); - abr2->add_son (5); + util::s_abr<unsigned>* abr2 = abr.search (elt2); + abr2->add_son (elt4); + abr2->add_son (elt5); abr.print (); }