[Lemon-commits] [lemon_svn] alpar: r2347 - hugo/trunk/lemon

Lemon SVN svn at lemon.cs.elte.hu
Mon Nov 6 20:51:58 CET 2006


Author: alpar
Date: Wed Nov 16 14:17:02 2005
New Revision: 2347

Modified:
   hugo/trunk/lemon/graph_utils.h

Log:
(UNDIR)GRAPH_TYPEDEFS also defines some basic graph maps

Modified: hugo/trunk/lemon/graph_utils.h
==============================================================================
--- hugo/trunk/lemon/graph_utils.h	(original)
+++ hugo/trunk/lemon/graph_utils.h	Wed Nov 16 14:17:02 2005
@@ -44,7 +44,8 @@
 
   ///This \c \#define creates convenience typedefs for the following types
   ///of \c Graph: \c Node,  \c NodeIt, \c Edge, \c EdgeIt, \c InEdgeIt,
-  ///\c OutEdgeIt.
+  ///\c OutEdgeIt,  \c BoolNodeMap,  \c IntNodeMap,  \c DoubleNodeMap,
+  ///\c BoolEdgeMap, \c IntEdgeMap,  \c DoubleEdgeMap.  
   ///\note If \c G it a template parameter, it should be used in this way.
   ///\code
   ///  GRAPH_TYPEDEFS(typename G)
@@ -52,19 +53,26 @@
   ///
   ///\warning There are no typedefs for the graph maps because of the lack of
   ///template typedefs in C++.
-#define GRAPH_TYPEDEFS(Graph)			\
-  typedef Graph::     Node      Node;		\
-    typedef Graph::   NodeIt    NodeIt;		\
-    typedef Graph::   Edge      Edge;		\
-    typedef Graph::   EdgeIt    EdgeIt;		\
-    typedef Graph:: InEdgeIt  InEdgeIt;		\
-    typedef Graph::OutEdgeIt OutEdgeIt;
+#define GRAPH_TYPEDEFS(Graph)				\
+  typedef Graph::     Node      Node;			\
+    typedef Graph::   NodeIt    NodeIt;			\
+    typedef Graph::   Edge      Edge;			\
+    typedef Graph::   EdgeIt    EdgeIt;			\
+    typedef Graph:: InEdgeIt  InEdgeIt;			\
+    typedef Graph::OutEdgeIt OutEdgeIt;			\
+    typedef Graph::Nodemap<bool> BoolNodeMap;		\
+    typedef Graph::Nodemap<int> IntNodeMap;		\
+    typedef Graph::Nodemap<double> DoubleNodeMap;	\
+    typedef Graph::Edgemap<bool> BoolEdgeMap;		\
+    typedef Graph::Edgemap<int> IntEdgeMap;		\
+    typedef Graph::Edgemap<double> DoubleEdgeMap;
   
   ///Creates convenience typedefs for the undirected graph types and iterators
 
   ///This \c \#define creates the same convenience typedefs as defined by
   ///\ref GRAPH_TYPEDEFS(Graph) and three more, namely it creates
   ///\c UndirEdge, \c UndirEdgeIt, \c IncEdgeIt,
+  ///\c BoolUndirEdgeMap, \c IntUndirEdgeMap,  \c DoubleUndirEdgeMap.  
   ///
   ///\note If \c G it a template parameter, it should be used in this way.
   ///\code
@@ -73,11 +81,15 @@
   ///
   ///\warning There are no typedefs for the graph maps because of the lack of
   ///template typedefs in C++.
-#define UNDIRGRAPH_TYPEDEFS(Graph)			\
-  GRAPH_TYPEDEFS(Graph)					\
-    typedef Graph:: UndirEdge   UndirEdge;		\
-    typedef Graph:: UndirEdgeIt UndirEdgeIt;		\
-    typedef Graph:: IncEdgeIt   IncEdgeIt;
+#define UNDIRGRAPH_TYPEDEFS(Graph)				\
+  GRAPH_TYPEDEFS(Graph)						\
+    typedef Graph:: UndirEdge   UndirEdge;			\
+    typedef Graph:: UndirEdgeIt UndirEdgeIt;			\
+    typedef Graph:: IncEdgeIt   IncEdgeIt;			\
+    typedef Graph::UndirEdgemap<bool> BoolUndirEdgeMap;		\
+    typedef Graph::UndirEdgemap<int> IntUndirEdgeMap;		\
+    typedef Graph::UndirEdgemap<double> DoubleUndirEdgeMap;
+  
 
 
   /// \brief Function to count the items in the graph.



More information about the Lemon-commits mailing list