# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1225831006 -3600
# Node ID 75cf49ce539059c67130b03592325fcbd5e4f96c
# Parent 3fb8ed1322de7eb738605582ff668a1ba0120d62
Add missing tags and indicators
diff --git a/lemon/bits/traits.h b/lemon/bits/traits.h
a
|
b
|
|
218 | 218 | }; |
219 | 219 | |
220 | 220 | template <typename Graph, typename Enable = void> |
| 221 | struct ArcNumTagIndicator { |
| 222 | static const bool value = false; |
| 223 | }; |
| 224 | |
| 225 | template <typename Graph> |
| 226 | struct ArcNumTagIndicator< |
| 227 | Graph, |
| 228 | typename enable_if<typename Graph::ArcNumTag, void>::type |
| 229 | > { |
| 230 | static const bool value = true; |
| 231 | }; |
| 232 | |
| 233 | template <typename Graph, typename Enable = void> |
221 | 234 | struct EdgeNumTagIndicator { |
222 | 235 | static const bool value = false; |
223 | 236 | }; |
… |
… |
|
226 | 239 | struct EdgeNumTagIndicator< |
227 | 240 | Graph, |
228 | 241 | typename enable_if<typename Graph::EdgeNumTag, void>::type |
| 242 | > { |
| 243 | static const bool value = true; |
| 244 | }; |
| 245 | |
| 246 | template <typename Graph, typename Enable = void> |
| 247 | struct FindArcTagIndicator { |
| 248 | static const bool value = false; |
| 249 | }; |
| 250 | |
| 251 | template <typename Graph> |
| 252 | struct FindArcTagIndicator< |
| 253 | Graph, |
| 254 | typename enable_if<typename Graph::FindArcTag, void>::type |
229 | 255 | > { |
230 | 256 | static const bool value = true; |
231 | 257 | }; |
diff --git a/lemon/full_graph.h b/lemon/full_graph.h
a
|
b
|
|
306 | 306 | } |
307 | 307 | |
308 | 308 | typedef True NodeNumTag; |
| 309 | typedef True ArcNumTag; |
309 | 310 | typedef True EdgeNumTag; |
310 | 311 | |
311 | 312 | int nodeNum() const { return _node_num; } |
… |
… |
|
343 | 344 | } |
344 | 345 | |
345 | 346 | typedef True FindEdgeTag; |
| 347 | typedef True FindArcTag; |
346 | 348 | |
347 | 349 | Edge findEdge(Node u, Node v, Edge prev = INVALID) const { |
348 | 350 | return prev != INVALID ? INVALID : edge(u, v); |
diff --git a/lemon/grid_graph.h b/lemon/grid_graph.h
a
|
b
|
|
82 | 82 | } |
83 | 83 | |
84 | 84 | typedef True NodeNumTag; |
| 85 | typedef True EdgeNumTag; |
85 | 86 | typedef True ArcNumTag; |
86 | 87 | |
87 | 88 | int nodeNum() const { return _node_num; } |
… |
… |
|
127 | 128 | static Arc arcFromId(int id) { return Arc(id);} |
128 | 129 | |
129 | 130 | typedef True FindEdgeTag; |
| 131 | typedef True FindArcTag; |
130 | 132 | |
131 | 133 | Edge findEdge(Node u, Node v, Edge prev = INVALID) const { |
132 | 134 | if (prev != INVALID) return INVALID; |
diff --git a/lemon/smart_graph.h b/lemon/smart_graph.h
a
|
b
|
|
67 | 67 | : nodes(_g.nodes), arcs(_g.arcs) { } |
68 | 68 | |
69 | 69 | typedef True NodeNumTag; |
70 | | typedef True EdgeNumTag; |
| 70 | typedef True ArcNumTag; |
71 | 71 | |
72 | 72 | int nodeNum() const { return nodes.size(); } |
73 | 73 | int arcNum() const { return arcs.size(); } |