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