Legal files. Proposal.
5 #define CREATE_EDGE_MAP_REGISTRY \
6 typedef MapRegistry<Graph, Edge, EdgeIt> EdgeMapRegistry; \
7 EdgeMapRegistry edge_maps;
9 #define CREATE_NODE_MAP_REGISTRY \
10 typedef MapRegistry<Graph, Node, NodeIt> NodeMapRegistry; \
11 NodeMapRegistry node_maps;
13 #define CREATE_MAP_REGISTRIES \
14 CREATE_NODE_MAP_REGISTRY \
15 CREATE_EDGE_MAP_REGISTRY
17 #define CREATE_NODE_MAP_FACTORY(TemplateFactory) \
18 typedef TemplateFactory<NodeMapRegistry> NodeMapFactory;
20 #define CREATE_EDGE_MAP_FACTORY(TemplateFactory) \
21 typedef TemplateFactory<EdgeMapRegistry> EdgeMapFactory;
23 #define CREATE_MAP_FACTORIES(TemplateFactory) \
24 CREATE_NODE_MAP_FACTORY(TemplateFactory) \
25 CREATE_EDGE_MAP_FACTORY(TemplateFactory)
27 #define IMPORT_NODE_MAP(Factory) \
28 template <typename V> \
29 class NodeMap : public Factory::Map<V> { \
32 NodeMap(Graph& g) : Factory::Map<V>(g, g.node_maps) {} \
35 #define IMPORT_EDGE_MAP(Factory) \
36 template <typename V> \
37 class EdgeMap : public Factory::Map<V> { \
40 EdgeMap(Graph& g) : Factory::Map<V>(g, g.edge_maps) {} \
43 #define CREATE_MAPS(TemplateFactory) \
44 CREATE_MAP_FACTORIES(TemplateFactory) \
45 IMPORT_NODE_MAP(NodeMapFactory) \
46 IMPORT_EDGE_MAP(EdgeMapFactory)