src/hugo/map_defines.h
changeset 897 ef09eee53b09
parent 891 74589d20dbc3
child 901 69a8e672acb1
equal deleted inserted replaced
5:2c25d1495edf 6:4f47ad5cb8a8
    38 #define CREATE_NODE_MAP(DynMap) \
    38 #define CREATE_NODE_MAP(DynMap) \
    39 template <typename Value> \
    39 template <typename Value> \
    40 class NodeMap : public DynMap<NodeMapRegistry, Value> { \
    40 class NodeMap : public DynMap<NodeMapRegistry, Value> { \
    41 public: \
    41 public: \
    42 typedef DynMap<NodeMapRegistry, Value> Parent; \
    42 typedef DynMap<NodeMapRegistry, Value> Parent; \
    43 NodeMap() {} \
       
    44 NodeMap(const typename Parent::Graph& g) \
    43 NodeMap(const typename Parent::Graph& g) \
    45   : Parent(g, g.node_maps) {} \
    44   : Parent(g, g.node_maps) {} \
    46 NodeMap(const typename Parent::Graph& g, const Value& v) \
    45 NodeMap(const typename Parent::Graph& g, const Value& v) \
    47   : Parent(g, g.node_maps, v) {} \
    46   : Parent(g, g.node_maps, v) {} \
    48 NodeMap(const NodeMap& copy) : Parent(static_cast<const Parent&>(copy)) {} \
    47 NodeMap(const NodeMap& copy) : Parent(static_cast<const Parent&>(copy)) {} \
    70 template <typename Value> \
    69 template <typename Value> \
    71 class EdgeMap : public DynMap<EdgeMapRegistry, Value> { \
    70 class EdgeMap : public DynMap<EdgeMapRegistry, Value> { \
    72 public: \
    71 public: \
    73 typedef DynMap<EdgeMapRegistry, Value> Parent; \
    72 typedef DynMap<EdgeMapRegistry, Value> Parent; \
    74 \
    73 \
    75 EdgeMap() {} \
       
    76 EdgeMap(const typename Parent::Graph& g) \
    74 EdgeMap(const typename Parent::Graph& g) \
    77   : Parent(g, g.edge_maps) {} \
    75   : Parent(g, g.edge_maps) {} \
    78 EdgeMap(const typename Parent::Graph& g, const Value& v) \
    76 EdgeMap(const typename Parent::Graph& g, const Value& v) \
    79   : Parent(g, g.edge_maps, v) {} \
    77   : Parent(g, g.edge_maps, v) {} \
    80 EdgeMap(const EdgeMap& copy) : Parent(static_cast<const Parent&>(copy)) {} \
    78 EdgeMap(const EdgeMap& copy) : Parent(static_cast<const Parent&>(copy)) {} \
   116 template <typename Value> \
   114 template <typename Value> \
   117 class SymEdgeMap : public SymMap<DynMap, SymEdgeMapRegistry, Value> { \
   115 class SymEdgeMap : public SymMap<DynMap, SymEdgeMapRegistry, Value> { \
   118 public: \
   116 public: \
   119 typedef SymMap<DynMap, SymEdgeMapRegistry, Value> Parent; \
   117 typedef SymMap<DynMap, SymEdgeMapRegistry, Value> Parent; \
   120 \
   118 \
   121 SymEdgeMap() {} \
       
   122 SymEdgeMap(const typename Parent::Graph& g) \
   119 SymEdgeMap(const typename Parent::Graph& g) \
   123   : Parent(g, g.sym_edge_maps) {} \
   120   : Parent(g, g.sym_edge_maps) {} \
   124 SymEdgeMap(const typename Parent::Graph& g, const Value& v) \
   121 SymEdgeMap(const typename Parent::Graph& g, const Value& v) \
   125   : Parent(g, g.sym_edge_maps, v) {} \
   122   : Parent(g, g.sym_edge_maps, v) {} \
   126 SymEdgeMap(const SymEdgeMap& copy) \
   123 SymEdgeMap(const SymEdgeMap& copy) \
   146 class NodeMap : public From::template NodeMap<Value> { \
   143 class NodeMap : public From::template NodeMap<Value> { \
   147 \
   144 \
   148 public: \
   145 public: \
   149 typedef typename From::template NodeMap<Value> Parent; \
   146 typedef typename From::template NodeMap<Value> Parent; \
   150 \
   147 \
   151 NodeMap() : Parent() {} \
       
   152 NodeMap(const To& to) \
   148 NodeMap(const To& to) \
   153   : Parent(static_cast<const From&>(from)) { } \
   149   : Parent(static_cast<const From&>(from)) { } \
   154 NodeMap(const To& to, const Value& value) \
   150 NodeMap(const To& to, const Value& value) \
   155   : Parent(static_cast<const From&>(from), value) { } \
   151   : Parent(static_cast<const From&>(from), value) { } \
   156 NodeMap(const NodeMap& copy) \
   152 NodeMap(const NodeMap& copy) \
   176 class EdgeMap : public From::template EdgeMap<Value> { \
   172 class EdgeMap : public From::template EdgeMap<Value> { \
   177 \
   173 \
   178 public: \
   174 public: \
   179 typedef typename From::template EdgeMap<Value> Parent; \
   175 typedef typename From::template EdgeMap<Value> Parent; \
   180 \
   176 \
   181 EdgeMap() : Parent() {} \
       
   182 EdgeMap(const To& to) \
   177 EdgeMap(const To& to) \
   183   : Parent(static_cast<const From&>(from)) { } \
   178   : Parent(static_cast<const From&>(from)) { } \
   184 EdgeMap(const To& to, const Value& value) \
   179 EdgeMap(const To& to, const Value& value) \
   185   : Parent(static_cast<const From&>(from), value) { } \
   180   : Parent(static_cast<const From&>(from), value) { } \
   186 EdgeMap(const EdgeMap& copy) \
   181 EdgeMap(const EdgeMap& copy) \