#ifndef EDGE_MAP_BASE_H #define EDGE_MAP_BASE_H template class EdgeMapBase { public: typedef G Graph; typedef K KeyType; MapBase() : graph(0) {} MapBase(Graph& g) : graph(&g) {graph.edge_maps.add(*this);} virtual ~MapBase() {graph.edge_maps.erase(*this);} protected: Graph* graph; int graph_index; virtual void add(const KeyType&) = 0; virtual void erase(const KeyType&) = 0; friend class Graph; }; #endif