[Lemon-commits] [lemon_svn] alpar: r310 - hugo/trunk/src/work/alpar
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:38:39 CET 2006
Author: alpar
Date: Sat Mar 20 17:07:19 2004
New Revision: 310
Modified:
hugo/trunk/src/work/alpar/smart_graph.h
Log:
bool map problems solved.
(now operator[] gives back 'std::vector<T>::reference' rather that 'T&')
Modified: hugo/trunk/src/work/alpar/smart_graph.h
==============================================================================
--- hugo/trunk/src/work/alpar/smart_graph.h (original)
+++ hugo/trunk/src/work/alpar/smart_graph.h Sat Mar 20 17:07:19 2004
@@ -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<T>::reference
+ operator[](Node n) { return container[n.n]; }
+ //const T& operator[](Node n) const { return container[n.n]; }
+ typename std::vector<T>::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<T>::reference
+ operator[](Edge n) { return container[n.n]; }
+ typename std::vector<T>::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<T>::reference
+ operator[](Edge n) { return container[n.idref()/2]; }
+ typename std::vector<T>::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
More information about the Lemon-commits
mailing list