diff -r 74d616d081f0 -r a93f94dbe3d3 src/lemon/vector_map.h --- a/src/lemon/vector_map.h Fri Mar 25 22:11:28 2005 +0000 +++ b/src/lemon/vector_map.h Fri Mar 25 23:31:57 2005 +0000 @@ -20,6 +20,8 @@ #include #include +#include +#include #include ///\ingroup graphmaps @@ -44,9 +46,11 @@ /// \author Balazs Dezso - template + template < + typename _Graph, + typename _Item, + typename _Value + > class VectorMap : public AlterationNotifier<_Item>::ObserverBase { public: @@ -83,6 +87,8 @@ /// The pointer type of the map; typedef typename Container::const_pointer ConstPointer; + typedef True FullTypeTag; + /// Constructor to attach the new map into the registry. /// It construates a map and attachs it into the registry. @@ -205,7 +211,7 @@ void clear() { container.clear(); } - + private: Container container; @@ -232,15 +238,15 @@ typedef typename Parent::EdgeNotifier EdgeObserverRegistry; - template - class NodeMap : public VectorMap { + class NodeMap : + public IterableMapExtender > { public: typedef VectorMappableGraphExtender<_Base> Graph; typedef typename Graph::Node Node; - typedef VectorMap Parent; + typedef IterableMapExtender > Parent; //typedef typename Parent::Graph Graph; typedef typename Parent::Value Value; @@ -253,13 +259,14 @@ }; template - class EdgeMap : public VectorMap { + class EdgeMap + : public IterableMapExtender > { public: typedef VectorMappableGraphExtender<_Base> Graph; typedef typename Graph::Edge Edge; - typedef VectorMap Parent; + typedef IterableMapExtender > Parent; //typedef typename Parent::Graph Graph; typedef typename Parent::Value Value;