[Lemon-commits] Peter Kovacs: Fix and uniform the usage of Graph...

Lemon HG hg at lemon.cs.elte.hu
Fri Apr 24 13:15:15 CEST 2009


details:   http://lemon.cs.elte.hu/hg/lemon/rev/4137ef9aacc6
changeset: 649:4137ef9aacc6
user:      Peter Kovacs <kpeter [at] inf.elte.hu>
date:      Fri Apr 24 11:54:48 2009 +0200
description:
	Fix and uniform the usage of Graph and Parent typedefs (#268)

	 - Rename Graph typedefs to GraphType in the implementation of graph
	maps and MapExtender to prevent conflicts (especially using VS).
	They are not public.
	 - Make Parent typedefs private in all classes.
	 - Replace Digraph with Graph in some places (fix faulty renamings
	of the script).
	 - Use Graph and Digraph typedefs (more) consequently.

diffstat:

 lemon/adaptors.h                    |  160 ++++++++++++++++++++++-----------------
 lemon/bits/array_map.h              |   12 ++-
 lemon/bits/base_extender.h          |    5 +-
 lemon/bits/default_map.h            |   11 +-
 lemon/bits/edge_set_extender.h      |   97 +++++++++++------------
 lemon/bits/graph_adaptor_extender.h |    6 +-
 lemon/bits/graph_extender.h         |   21 ++---
 lemon/bits/map_extender.h           |   47 +++++------
 lemon/bits/vector_map.h             |   14 ++-
 lemon/concepts/graph_components.h   |   23 +++--
 lemon/core.h                        |   65 +++++++++-------
 lemon/edge_set.h                    |   54 ++++---------
 lemon/full_graph.h                  |   15 ++-
 lemon/graph_to_eps.h                |    2 +
 lemon/grid_graph.h                  |    4 +-
 lemon/hypercube_graph.h             |    4 +-
 lemon/list_graph.h                  |   10 +-
 lemon/maps.h                        |    9 +-
 lemon/smart_graph.h                 |   10 +-
 19 files changed, 295 insertions(+), 274 deletions(-)

diffs (truncated from 1937 to 300 lines):

diff --git a/lemon/adaptors.h b/lemon/adaptors.h
--- a/lemon/adaptors.h
+++ b/lemon/adaptors.h
@@ -109,13 +109,11 @@
 
     template <typename V>
     class NodeMap : public DGR::template NodeMap<V> {
-    public:
-
       typedef typename DGR::template NodeMap<V> Parent;
 
+    public:
       explicit NodeMap(const Adaptor& adaptor)
         : Parent(*adaptor._digraph) {}
-
       NodeMap(const Adaptor& adaptor, const V& value)
         : Parent(*adaptor._digraph, value) { }
 
@@ -134,13 +132,11 @@
 
     template <typename V>
     class ArcMap : public DGR::template ArcMap<V> {
-    public:
-
       typedef typename DGR::template ArcMap<V> Parent;
 
+    public:
       explicit ArcMap(const DigraphAdaptorBase<DGR>& adaptor)
         : Parent(*adaptor._digraph) {}
-
       ArcMap(const DigraphAdaptorBase<DGR>& adaptor, const V& value)
         : Parent(*adaptor._digraph, value) {}
 
@@ -255,8 +251,9 @@
 
     template <typename V>
     class NodeMap : public GR::template NodeMap<V> {
+      typedef typename GR::template NodeMap<V> Parent;
+
     public:
-      typedef typename GR::template NodeMap<V> Parent;
       explicit NodeMap(const GraphAdaptorBase<GR>& adapter)
         : Parent(*adapter._graph) {}
       NodeMap(const GraphAdaptorBase<GR>& adapter, const V& value)
@@ -277,8 +274,9 @@
 
     template <typename V>
     class ArcMap : public GR::template ArcMap<V> {
+      typedef typename GR::template ArcMap<V> Parent;
+
     public:
-      typedef typename GR::template ArcMap<V> Parent;
       explicit ArcMap(const GraphAdaptorBase<GR>& adapter)
         : Parent(*adapter._graph) {}
       ArcMap(const GraphAdaptorBase<GR>& adapter, const V& value)
@@ -298,8 +296,9 @@
 
     template <typename V>
     class EdgeMap : public GR::template EdgeMap<V> {
+      typedef typename GR::template EdgeMap<V> Parent;
+
     public:
-      typedef typename GR::template EdgeMap<V> Parent;
       explicit EdgeMap(const GraphAdaptorBase<GR>& adapter)
         : Parent(*adapter._graph) {}
       EdgeMap(const GraphAdaptorBase<GR>& adapter, const V& value)
@@ -321,9 +320,9 @@
 
   template <typename DGR>
   class ReverseDigraphBase : public DigraphAdaptorBase<DGR> {
+    typedef DigraphAdaptorBase<DGR> Parent;
   public:
     typedef DGR Digraph;
-    typedef DigraphAdaptorBase<DGR> Parent;
   protected:
     ReverseDigraphBase() : Parent() { }
   public:
@@ -374,10 +373,10 @@
   class ReverseDigraph :
     public DigraphAdaptorExtender<ReverseDigraphBase<DGR> > {
 #endif
+    typedef DigraphAdaptorExtender<ReverseDigraphBase<DGR> > Parent;
   public:
     /// The type of the adapted digraph.
     typedef DGR Digraph;
-    typedef DigraphAdaptorExtender<ReverseDigraphBase<DGR> > Parent;
   protected:
     ReverseDigraph() { }
   public:
@@ -403,13 +402,13 @@
 
   template <typename DGR, typename NF, typename AF, bool ch = true>
   class SubDigraphBase : public DigraphAdaptorBase<DGR> {
+    typedef DigraphAdaptorBase<DGR> Parent;
   public:
     typedef DGR Digraph;
     typedef NF NodeFilterMap;
     typedef AF ArcFilterMap;
 
     typedef SubDigraphBase Adaptor;
-    typedef DigraphAdaptorBase<DGR> Parent;
   protected:
     NF* _node_filter;
     AF* _arc_filter;
@@ -509,10 +508,11 @@
     class NodeMap 
       : public SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>, 
 	      LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> {
+      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,
+	LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,
-	    LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent;
 
       NodeMap(const SubDigraphBase<DGR, NF, AF, ch>& adaptor)
         : Parent(adaptor) {}
@@ -535,10 +535,11 @@
     class ArcMap 
       : public SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,
 	      LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> {
+      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,
+        LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,
-        LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> Parent;
 
       ArcMap(const SubDigraphBase<DGR, NF, AF, ch>& adaptor)
         : Parent(adaptor) {}
@@ -562,13 +563,13 @@
   template <typename DGR, typename NF, typename AF>
   class SubDigraphBase<DGR, NF, AF, false>
     : public DigraphAdaptorBase<DGR> {
+    typedef DigraphAdaptorBase<DGR> Parent;
   public:
     typedef DGR Digraph;
     typedef NF NodeFilterMap;
     typedef AF ArcFilterMap;
 
     typedef SubDigraphBase Adaptor;
-    typedef DigraphAdaptorBase<Digraph> Parent;
   protected:
     NF* _node_filter;
     AF* _arc_filter;
@@ -650,10 +651,11 @@
     class NodeMap 
       : public SubMapExtender<SubDigraphBase<DGR, NF, AF, false>,
           LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> {
+      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>, 
+        LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>, 
-        LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent;
 
       NodeMap(const SubDigraphBase<DGR, NF, AF, false>& adaptor)
         : Parent(adaptor) {}
@@ -676,10 +678,11 @@
     class ArcMap 
       : public SubMapExtender<SubDigraphBase<DGR, NF, AF, false>,
           LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> {
+      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>,
+        LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>,
-          LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> Parent;
 
       ArcMap(const SubDigraphBase<DGR, NF, AF, false>& adaptor)
         : Parent(adaptor) {}
@@ -863,13 +866,13 @@
 
   template <typename GR, typename NF, typename EF, bool ch = true>
   class SubGraphBase : public GraphAdaptorBase<GR> {
+    typedef GraphAdaptorBase<GR> Parent;
   public:
     typedef GR Graph;
     typedef NF NodeFilterMap;
     typedef EF EdgeFilterMap;
 
     typedef SubGraphBase Adaptor;
-    typedef GraphAdaptorBase<GR> Parent;
   protected:
 
     NF* _node_filter;
@@ -1016,10 +1019,11 @@
     class NodeMap 
       : public SubMapExtender<SubGraphBase<GR, NF, EF, ch>,
           LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> {
+      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 
+        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 
-        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent;
 
       NodeMap(const SubGraphBase<GR, NF, EF, ch>& adaptor)
         : Parent(adaptor) {}
@@ -1042,10 +1046,11 @@
     class ArcMap 
       : public SubMapExtender<SubGraphBase<GR, NF, EF, ch>,
           LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> {
+      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 
+        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 
-        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent;
 
       ArcMap(const SubGraphBase<GR, NF, EF, ch>& adaptor)
         : Parent(adaptor) {}
@@ -1068,10 +1073,11 @@
     class EdgeMap 
       : public SubMapExtender<SubGraphBase<GR, NF, EF, ch>,
         LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> {
+      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 
+        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 
-        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent;
 
       EdgeMap(const SubGraphBase<GR, NF, EF, ch>& adaptor)
         : Parent(adaptor) {}
@@ -1096,13 +1102,13 @@
   template <typename GR, typename NF, typename EF>
   class SubGraphBase<GR, NF, EF, false>
     : public GraphAdaptorBase<GR> {
+    typedef GraphAdaptorBase<GR> Parent;
   public:
     typedef GR Graph;
     typedef NF NodeFilterMap;
     typedef EF EdgeFilterMap;
 
     typedef SubGraphBase Adaptor;
-    typedef GraphAdaptorBase<GR> Parent;
   protected:
     NF* _node_filter;
     EF* _edge_filter;
@@ -1211,10 +1217,11 @@
     class NodeMap 
       : public SubMapExtender<SubGraphBase<GR, NF, EF, false>,
           LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> {
+      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 
+        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 
-        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent;
 
       NodeMap(const SubGraphBase<GR, NF, EF, false>& adaptor)
         : Parent(adaptor) {}
@@ -1237,10 +1244,11 @@
     class ArcMap 
       : public SubMapExtender<SubGraphBase<GR, NF, EF, false>,
           LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> {
+      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 
+        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 
-        LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent;
 
       ArcMap(const SubGraphBase<GR, NF, EF, false>& adaptor)
         : Parent(adaptor) {}
@@ -1263,10 +1271,11 @@
     class EdgeMap 
       : public SubMapExtender<SubGraphBase<GR, NF, EF, false>,
         LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> {
+      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 
+	LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent;
+
     public:
       typedef V Value;
-      typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 
-		  LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent;
 
       EdgeMap(const SubGraphBase<GR, NF, EF, false>& adaptor)
         : Parent(adaptor) {}
@@ -1485,15 +1494,15 @@
       SubDigraphBase<GR, NF, ConstMap<typename GR::Arc, Const<bool, true> >,
                      true> > {
 #endif
+    typedef DigraphAdaptorExtender<
+      SubDigraphBase<GR, NF, ConstMap<typename GR::Arc, Const<bool, true> >, 
+                     true> > Parent;
+
   public:
 
     typedef GR Digraph;



More information about the Lemon-commits mailing list