3 #ifndef LEMON_CLEARABLE_GRAPH_EXTENDER_H
4 #define LEMON_CLEARABLE_GRAPH_EXTENDER_H
6 #include <lemon/invalid.h>
11 template <typename _Base>
12 class ClearableGraphExtender : public _Base {
15 typedef ClearableGraphExtender Graph;
17 typedef typename Parent::Node Node;
18 typedef typename Parent::Edge Edge;
21 Parent::getNotifier(Node()).clear();
22 Parent::getNotifier(Edge()).clear();
28 template <typename _Base>
29 class ClearableUndirGraphExtender : public _Base {
32 typedef ClearableUndirGraphExtender Graph;
34 typedef typename Parent::Node Node;
35 typedef typename Parent::UndirEdge UndirEdge;
36 typedef typename Parent::Edge Edge;
39 Parent::getNotifier(Node()).clear();
40 Parent::getNotifier(UndirEdge()).clear();
41 Parent::getNotifier(Edge()).clear();
48 template <typename _Base>
49 class ClearableUndirBipartiteGraphExtender : public _Base {
53 typedef ClearableUndirBipartiteGraphExtender Graph;
55 typedef typename Parent::Node Node;
56 typedef typename Parent::LowerNode LowerNode;
57 typedef typename Parent::UpperNode UpperNode;
58 typedef typename Parent::Edge Edge;
59 typedef typename Parent::UndirEdge UndirEdge;
62 Parent::getNotifier(Edge()).clear();
63 Parent::getNotifier(UndirEdge()).clear();
64 Parent::getNotifier(Node()).clear();
65 Parent::getNotifier(LowerNode()).clear();
66 Parent::getNotifier(UpperNode()).clear();