// -*- c++ -*- #ifndef LEMON_EXTENDABLE_GRAPH_EXTENDER_H #define LEMON_EXTENDABLE_GRAPH_EXTENDER_H namespace lemon { template class ExtendableGraphExtender : public _Base { public: typedef ExtendableGraphExtender Graph; typedef _Base Parent; typedef typename Parent::Node Node; typedef typename Parent::Edge Edge; Node addNode() { Node node = Parent::addNode(); Parent::getObserverRegistry(Node()).add(node); return node; } Edge addEdge(const Node& from, const Node& to) { Edge edge = Parent::addEdge(from, to); Parent::getObserverRegistry(Edge()).add(edge); return edge; } }; } #endif