# HG changeset patch # User alpar # Date 1079798839 0 # Node ID b3c4e6646f7f429ca2f237f7636e85c2eab97d81 # Parent 44f01e580f16ca2f1628a91a68a4f6c955b715b8 bool map problems solved. (now operator[] gives back 'std::vector::reference' rather that 'T&') diff -r 44f01e580f16 -r b3c4e6646f7f src/work/alpar/smart_graph.h --- a/src/work/alpar/smart_graph.h Sat Mar 20 13:48:04 2004 +0000 +++ b/src/work/alpar/smart_graph.h Sat Mar 20 16:07:19 2004 +0000 @@ -371,12 +371,17 @@ if(k.n>=int(container.size())) container.resize(k.n+1); } - void erase(const Node k) { } + void erase(const Node) { } void set(Node n, T a) { container[n.n]=a; } //T get(Node n) const { return container[n.n]; } - T& operator[](Node n) { return container[n.n]; } - const T& operator[](Node n) const { return container[n.n]; } + //Hajjaj: + //T& operator[](Node n) { return container[n.n]; } + typename std::vector::reference + operator[](Node n) { return container[n.n]; } + //const T& operator[](Node n) const { return container[n.n]; } + typename std::vector::const_reference + operator[](Node n) const { return container[n.n]; } ///\warning There is no safety check at all! ///Using operator = between maps attached to different graph may @@ -458,12 +463,14 @@ { if(k.n>=int(container.size())) container.resize(k.n+1); } - void erase(const Edge k) { } + void erase(const Edge) { } void set(Edge n, T a) { container[n.n]=a; } //T get(Edge n) const { return container[n.n]; } - T& operator[](Edge n) { return container[n.n]; } - const T& operator[](Edge n) const { return container[n.n]; } + typename std::vector::reference + operator[](Edge n) { return container[n.n]; } + typename std::vector::const_reference + operator[](Edge n) const { return container[n.n]; } ///\warning There is no safety check at all! ///Using operator = between maps attached to different graph may @@ -604,8 +611,10 @@ void set(Edge n, T a) { container[n.idref()/2]=a; } //T get(Edge n) const { return container[n.idref()/2]; } - T& operator[](Edge n) { return container[n.idref()/2]; } - const T& operator[](Edge n) const { return container[n.idref()/2]; } + typename std::vector::reference + operator[](Edge n) { return container[n.idref()/2]; } + typename std::vector::const_reference + operator[](Edge n) const { return container[n.idref()/2]; } ///\warning There is no safety check at all! ///Using operator = between maps attached to different graph may