# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1225831006 -3600
# Node ID 75cf49ce539059c67130b03592325fcbd5e4f96c
# Parent  3fb8ed1322de7eb738605582ff668a1ba0120d62
Add missing tags and indicators

diff -r 3fb8ed1322de -r 75cf49ce5390 lemon/bits/traits.h
--- a/lemon/bits/traits.h	Tue Nov 04 10:25:47 2008 +0000
+++ b/lemon/bits/traits.h	Tue Nov 04 21:36:46 2008 +0100
@@ -218,6 +218,19 @@
   };
 
   template <typename Graph, typename Enable = void>
+  struct ArcNumTagIndicator {
+    static const bool value = false;
+  };
+
+  template <typename Graph>
+  struct ArcNumTagIndicator<
+    Graph,
+    typename enable_if<typename Graph::ArcNumTag, void>::type
+  > {
+    static const bool value = true;
+  };
+
+  template <typename Graph, typename Enable = void>
   struct EdgeNumTagIndicator {
     static const bool value = false;
   };
@@ -231,6 +244,19 @@
   };
 
   template <typename Graph, typename Enable = void>
+  struct FindArcTagIndicator {
+    static const bool value = false;
+  };
+
+  template <typename Graph>
+  struct FindArcTagIndicator<
+    Graph,
+    typename enable_if<typename Graph::FindArcTag, void>::type
+  > {
+    static const bool value = true;
+  };
+
+  template <typename Graph, typename Enable = void>
   struct FindEdgeTagIndicator {
     static const bool value = false;
   };
diff -r 3fb8ed1322de -r 75cf49ce5390 lemon/full_graph.h
--- a/lemon/full_graph.h	Tue Nov 04 10:25:47 2008 +0000
+++ b/lemon/full_graph.h	Tue Nov 04 21:36:46 2008 +0100
@@ -306,6 +306,7 @@
     }
 
     typedef True NodeNumTag;
+    typedef True ArcNumTag;
     typedef True EdgeNumTag;
 
     int nodeNum() const { return _node_num; }
@@ -343,6 +344,7 @@
     }
 
     typedef True FindEdgeTag;
+    typedef True FindArcTag;
 
     Edge findEdge(Node u, Node v, Edge prev = INVALID) const {
       return prev != INVALID ? INVALID : edge(u, v);
diff -r 3fb8ed1322de -r 75cf49ce5390 lemon/grid_graph.h
--- a/lemon/grid_graph.h	Tue Nov 04 10:25:47 2008 +0000
+++ b/lemon/grid_graph.h	Tue Nov 04 21:36:46 2008 +0100
@@ -82,6 +82,7 @@
     }
 
     typedef True NodeNumTag;
+    typedef True EdgeNumTag;
     typedef True ArcNumTag;
 
     int nodeNum() const { return _node_num; }
@@ -127,6 +128,7 @@
     static Arc arcFromId(int id) { return Arc(id);}
 
     typedef True FindEdgeTag;
+    typedef True FindArcTag;
 
     Edge findEdge(Node u, Node v, Edge prev = INVALID) const {
       if (prev != INVALID) return INVALID;
diff -r 3fb8ed1322de -r 75cf49ce5390 lemon/smart_graph.h
--- a/lemon/smart_graph.h	Tue Nov 04 10:25:47 2008 +0000
+++ b/lemon/smart_graph.h	Tue Nov 04 21:36:46 2008 +0100
@@ -67,7 +67,7 @@
       : nodes(_g.nodes), arcs(_g.arcs) { }
 
     typedef True NodeNumTag;
-    typedef True EdgeNumTag;
+    typedef True ArcNumTag;
 
     int nodeNum() const { return nodes.size(); }
     int arcNum() const { return arcs.size(); }