lemon/graph_adaptor.h
changeset 1989 d276e88aa48a
parent 1980 a954b780e3ab
child 1991 d7442141d9ef
     1.1 --- a/lemon/graph_adaptor.h	Wed Mar 01 09:40:16 2006 +0000
     1.2 +++ b/lemon/graph_adaptor.h	Wed Mar 01 10:04:47 2006 +0000
     1.3 @@ -1350,372 +1350,371 @@
     1.4  
     1.5    };
     1.6  
     1.7 -  template <typename _Graph>
     1.8 -  class SplitGraphAdaptorBase 
     1.9 -    : public GraphAdaptorBase<_Graph> {
    1.10 -  public:
    1.11 -    typedef GraphAdaptorBase<_Graph> Parent;
    1.12 +//   template <typename _Graph>
    1.13 +//   class SplitGraphAdaptorBase 
    1.14 +//     : public GraphAdaptorBase<_Graph> {
    1.15 +//   public:
    1.16 +//     typedef GraphAdaptorBase<_Graph> Parent;
    1.17  
    1.18 -    class Node;
    1.19 -    class Edge;
    1.20 -    template <typename T> class NodeMap;
    1.21 -    template <typename T> class EdgeMap;
    1.22 +//     class Node;
    1.23 +//     class Edge;
    1.24 +//     template <typename T> class NodeMap;
    1.25 +//     template <typename T> class EdgeMap;
    1.26      
    1.27  
    1.28 -    class Node : public Parent::Node {
    1.29 -      friend class SplitGraphAdaptorBase;
    1.30 -      template <typename T> friend class NodeMap;
    1.31 -      typedef typename Parent::Node NodeParent;
    1.32 -    private:
    1.33 +//     class Node : public Parent::Node {
    1.34 +//       friend class SplitGraphAdaptorBase;
    1.35 +//       template <typename T> friend class NodeMap;
    1.36 +//       typedef typename Parent::Node NodeParent;
    1.37 +//     private:
    1.38  
    1.39 -      bool entry;
    1.40 -      Node(typename Parent::Node _node, bool _entry)
    1.41 -	: Parent::Node(_node), entry(_entry) {}
    1.42 +//       bool entry;
    1.43 +//       Node(typename Parent::Node _node, bool _entry)
    1.44 +// 	: Parent::Node(_node), entry(_entry) {}
    1.45        
    1.46 -    public:
    1.47 -      Node() {}
    1.48 -      Node(Invalid) : NodeParent(INVALID), entry(true) {}
    1.49 +//     public:
    1.50 +//       Node() {}
    1.51 +//       Node(Invalid) : NodeParent(INVALID), entry(true) {}
    1.52  
    1.53 -      bool operator==(const Node& node) const {
    1.54 -	return NodeParent::operator==(node) && entry == node.entry;
    1.55 -      }
    1.56 +//       bool operator==(const Node& node) const {
    1.57 +// 	return NodeParent::operator==(node) && entry == node.entry;
    1.58 +//       }
    1.59        
    1.60 -      bool operator!=(const Node& node) const {
    1.61 -	return !(*this == node);
    1.62 -      }
    1.63 +//       bool operator!=(const Node& node) const {
    1.64 +// 	return !(*this == node);
    1.65 +//       }
    1.66        
    1.67 -      bool operator<(const Node& node) const {
    1.68 -	return NodeParent::operator<(node) || 
    1.69 -	  (NodeParent::operator==(node) && entry < node.entry);
    1.70 -      }
    1.71 -    };
    1.72 +//       bool operator<(const Node& node) const {
    1.73 +// 	return NodeParent::operator<(node) || 
    1.74 +// 	  (NodeParent::operator==(node) && entry < node.entry);
    1.75 +//       }
    1.76 +//     };
    1.77  
    1.78 -    /// \todo May we want VARIANT/union type
    1.79 -    class Edge : public Parent::Edge {
    1.80 -      friend class SplitGraphAdaptorBase;
    1.81 -      template <typename T> friend class EdgeMap;
    1.82 -    private:
    1.83 -      typedef typename Parent::Edge EdgeParent;
    1.84 -      typedef typename Parent::Node NodeParent;
    1.85 -      NodeParent bind;
    1.86 +//     /// \todo May we want VARIANT/union type
    1.87 +//     class Edge : public Parent::Edge {
    1.88 +//       friend class SplitGraphAdaptorBase;
    1.89 +//       template <typename T> friend class EdgeMap;
    1.90 +//     private:
    1.91 +//       typedef typename Parent::Edge EdgeParent;
    1.92 +//       typedef typename Parent::Node NodeParent;
    1.93 +//       NodeParent bind;
    1.94  
    1.95 -      Edge(const EdgeParent& edge, const NodeParent& node)
    1.96 -	: EdgeParent(edge), bind(node) {}
    1.97 -    public:
    1.98 -      Edge() {}
    1.99 -      Edge(Invalid) : EdgeParent(INVALID), bind(INVALID) {}
   1.100 +//       Edge(const EdgeParent& edge, const NodeParent& node)
   1.101 +// 	: EdgeParent(edge), bind(node) {}
   1.102 +//     public:
   1.103 +//       Edge() {}
   1.104 +//       Edge(Invalid) : EdgeParent(INVALID), bind(INVALID) {}
   1.105  
   1.106 -      bool operator==(const Edge& edge) const {
   1.107 -	return EdgeParent::operator==(edge) && bind == edge.bind;
   1.108 -      }
   1.109 +//       bool operator==(const Edge& edge) const {
   1.110 +// 	return EdgeParent::operator==(edge) && bind == edge.bind;
   1.111 +//       }
   1.112        
   1.113 -      bool operator!=(const Edge& edge) const {
   1.114 -	return !(*this == edge);
   1.115 -      }
   1.116 +//       bool operator!=(const Edge& edge) const {
   1.117 +// 	return !(*this == edge);
   1.118 +//       }
   1.119        
   1.120 -      bool operator<(const Edge& edge) const {
   1.121 -	return EdgeParent::operator<(edge) || 
   1.122 -	  (EdgeParent::operator==(edge) && bind < edge.bind);
   1.123 -      }
   1.124 -    };
   1.125 +//       bool operator<(const Edge& edge) const {
   1.126 +// 	return EdgeParent::operator<(edge) || 
   1.127 +// 	  (EdgeParent::operator==(edge) && bind < edge.bind);
   1.128 +//       }
   1.129 +//     };
   1.130  
   1.131 -    void first(Node& node) const {
   1.132 -      Parent::first(node);
   1.133 -      node.entry = true;
   1.134 -    } 
   1.135 +//     void first(Node& node) const {
   1.136 +//       Parent::first(node);
   1.137 +//       node.entry = true;
   1.138 +//     } 
   1.139  
   1.140 -    void next(Node& node) const {
   1.141 -      if (node.entry) {
   1.142 -	node.entry = false;
   1.143 -      } else {
   1.144 -	node.entry = true;
   1.145 -	Parent::next(node);
   1.146 -      }
   1.147 -    }
   1.148 +//     void next(Node& node) const {
   1.149 +//       if (node.entry) {
   1.150 +// 	node.entry = false;
   1.151 +//       } else {
   1.152 +// 	node.entry = true;
   1.153 +// 	Parent::next(node);
   1.154 +//       }
   1.155 +//     }
   1.156  
   1.157 -    void first(Edge& edge) const {
   1.158 -      Parent::first(edge);
   1.159 -      if ((typename Parent::Edge&)edge == INVALID) {
   1.160 -	Parent::first(edge.bind);
   1.161 -      } else {
   1.162 -	edge.bind = INVALID;
   1.163 -      }
   1.164 -    }
   1.165 +//     void first(Edge& edge) const {
   1.166 +//       Parent::first(edge);
   1.167 +//       if ((typename Parent::Edge&)edge == INVALID) {
   1.168 +// 	Parent::first(edge.bind);
   1.169 +//       } else {
   1.170 +// 	edge.bind = INVALID;
   1.171 +//       }
   1.172 +//     }
   1.173  
   1.174 -    void next(Edge& edge) const {
   1.175 -      if ((typename Parent::Edge&)edge != INVALID) {
   1.176 -	Parent::next(edge);
   1.177 -	if ((typename Parent::Edge&)edge == INVALID) {
   1.178 -	  Parent::first(edge.bind);
   1.179 -	}
   1.180 -      } else {
   1.181 -	Parent::next(edge.bind);
   1.182 -      }      
   1.183 -    }
   1.184 +//     void next(Edge& edge) const {
   1.185 +//       if ((typename Parent::Edge&)edge != INVALID) {
   1.186 +// 	Parent::next(edge);
   1.187 +// 	if ((typename Parent::Edge&)edge == INVALID) {
   1.188 +// 	  Parent::first(edge.bind);
   1.189 +// 	}
   1.190 +//       } else {
   1.191 +// 	Parent::next(edge.bind);
   1.192 +//       }      
   1.193 +//     }
   1.194  
   1.195 -    void firstIn(Edge& edge, const Node& node) const {
   1.196 -      if (node.entry) {
   1.197 -	Parent::firstIn(edge, node);
   1.198 -	edge.bind = INVALID;
   1.199 -      } else {
   1.200 -	(typename Parent::Edge&)edge = INVALID;
   1.201 -	edge.bind = node;
   1.202 -      }
   1.203 -    }
   1.204 +//     void firstIn(Edge& edge, const Node& node) const {
   1.205 +//       if (node.entry) {
   1.206 +// 	Parent::firstIn(edge, node);
   1.207 +// 	edge.bind = INVALID;
   1.208 +//       } else {
   1.209 +// 	(typename Parent::Edge&)edge = INVALID;
   1.210 +// 	edge.bind = node;
   1.211 +//       }
   1.212 +//     }
   1.213  
   1.214 -    void nextIn(Edge& edge) const {
   1.215 -      if ((typename Parent::Edge&)edge != INVALID) {
   1.216 -	Parent::nextIn(edge);
   1.217 -      } else {
   1.218 -	edge.bind = INVALID;
   1.219 -      }      
   1.220 -    }
   1.221 +//     void nextIn(Edge& edge) const {
   1.222 +//       if ((typename Parent::Edge&)edge != INVALID) {
   1.223 +// 	Parent::nextIn(edge);
   1.224 +//       } else {
   1.225 +// 	edge.bind = INVALID;
   1.226 +//       }      
   1.227 +//     }
   1.228  
   1.229 -    void firstOut(Edge& edge, const Node& node) const {
   1.230 -      if (!node.entry) {
   1.231 -	Parent::firstOut(edge, node);
   1.232 -	edge.bind = INVALID;
   1.233 -      } else {
   1.234 -	(typename Parent::Edge&)edge = INVALID;
   1.235 -	edge.bind = node;
   1.236 -      }
   1.237 -    }
   1.238 +//     void firstOut(Edge& edge, const Node& node) const {
   1.239 +//       if (!node.entry) {
   1.240 +// 	Parent::firstOut(edge, node);
   1.241 +// 	edge.bind = INVALID;
   1.242 +//       } else {
   1.243 +// 	(typename Parent::Edge&)edge = INVALID;
   1.244 +// 	edge.bind = node;
   1.245 +//       }
   1.246 +//     }
   1.247  
   1.248 -    void nextOut(Edge& edge) const {
   1.249 -      if ((typename Parent::Edge&)edge != INVALID) {
   1.250 -	Parent::nextOut(edge);
   1.251 -      } else {
   1.252 -	edge.bind = INVALID;
   1.253 -      }
   1.254 -    }
   1.255 +//     void nextOut(Edge& edge) const {
   1.256 +//       if ((typename Parent::Edge&)edge != INVALID) {
   1.257 +// 	Parent::nextOut(edge);
   1.258 +//       } else {
   1.259 +// 	edge.bind = INVALID;
   1.260 +//       }
   1.261 +//     }
   1.262  
   1.263 -    Node source(const Edge& edge) const {
   1.264 -      if ((typename Parent::Edge&)edge != INVALID) {
   1.265 -	return Node(Parent::source(edge), false);
   1.266 -      } else {
   1.267 -	return Node(edge.bind, true);
   1.268 -      }
   1.269 -    }
   1.270 +//     Node source(const Edge& edge) const {
   1.271 +//       if ((typename Parent::Edge&)edge != INVALID) {
   1.272 +// 	return Node(Parent::source(edge), false);
   1.273 +//       } else {
   1.274 +// 	return Node(edge.bind, true);
   1.275 +//       }
   1.276 +//     }
   1.277  
   1.278 -    Node target(const Edge& edge) const {
   1.279 -      if ((typename Parent::Edge&)edge != INVALID) {
   1.280 -	return Node(Parent::target(edge), true);
   1.281 -      } else {
   1.282 -	return Node(edge.bind, false);
   1.283 -      }
   1.284 -    }
   1.285 +//     Node target(const Edge& edge) const {
   1.286 +//       if ((typename Parent::Edge&)edge != INVALID) {
   1.287 +// 	return Node(Parent::target(edge), true);
   1.288 +//       } else {
   1.289 +// 	return Node(edge.bind, false);
   1.290 +//       }
   1.291 +//     }
   1.292  
   1.293 -    static bool entryNode(const Node& node) {
   1.294 -      return node.entry;
   1.295 -    }
   1.296 +//     static bool entryNode(const Node& node) {
   1.297 +//       return node.entry;
   1.298 +//     }
   1.299  
   1.300 -    static bool exitNode(const Node& node) {
   1.301 -      return !node.entry;
   1.302 -    }
   1.303 +//     static bool exitNode(const Node& node) {
   1.304 +//       return !node.entry;
   1.305 +//     }
   1.306  
   1.307 -    static Node getEntry(const typename Parent::Node& node) {
   1.308 -      return Node(node, true);
   1.309 -    }
   1.310 +//     static Node getEntry(const typename Parent::Node& node) {
   1.311 +//       return Node(node, true);
   1.312 +//     }
   1.313  
   1.314 -    static Node getExit(const typename Parent::Node& node) {
   1.315 -      return Node(node, false);
   1.316 -    }
   1.317 +//     static Node getExit(const typename Parent::Node& node) {
   1.318 +//       return Node(node, false);
   1.319 +//     }
   1.320  
   1.321 -    static bool originalEdge(const Edge& edge) {
   1.322 -      return (typename Parent::Edge&)edge != INVALID;
   1.323 -    }
   1.324 +//     static bool originalEdge(const Edge& edge) {
   1.325 +//       return (typename Parent::Edge&)edge != INVALID;
   1.326 +//     }
   1.327  
   1.328 -    static bool bindingEdge(const Edge& edge) {
   1.329 -      return edge.bind != INVALID;
   1.330 -    }
   1.331 +//     static bool bindingEdge(const Edge& edge) {
   1.332 +//       return edge.bind != INVALID;
   1.333 +//     }
   1.334  
   1.335 -    static Node getBindedNode(const Edge& edge) {
   1.336 -      return edge.bind;
   1.337 -    }
   1.338 +//     static Node getBindedNode(const Edge& edge) {
   1.339 +//       return edge.bind;
   1.340 +//     }
   1.341  
   1.342 -    int nodeNum() const {
   1.343 -      return Parent::nodeNum() * 2;
   1.344 -    }
   1.345 +//     int nodeNum() const {
   1.346 +//       return Parent::nodeNum() * 2;
   1.347 +//     }
   1.348  
   1.349 -    typedef CompileTimeAnd<typename Parent::NodeNumTag, 
   1.350 -    			   typename Parent::EdgeNumTag> EdgeNumTag;
   1.351 +//     typedef True EdgeNumTag;
   1.352      
   1.353 -    int edgeNum() const {
   1.354 -      return Parent::edgeNum() + Parent::nodeNum();
   1.355 -    }
   1.356 +//     int edgeNum() const {
   1.357 +//       return countEdges() + Parent::nodeNum();
   1.358 +//     }
   1.359  
   1.360 -    Edge findEdge(const Node& source, const Node& target, 
   1.361 -		  const Edge& prev = INVALID) const {
   1.362 -      if (exitNode(source) && entryNode(target)) {
   1.363 -	return Parent::findEdge(source, target, prev);
   1.364 -      } else {
   1.365 -	if (prev == INVALID && entryNode(source) && exitNode(target) && 
   1.366 -	    (typename Parent::Node&)source == (typename Parent::Node&)target) {
   1.367 -	  return Edge(INVALID, source);
   1.368 -	} else {
   1.369 -	  return INVALID;
   1.370 -	}
   1.371 -      }
   1.372 -    }
   1.373 +//     Edge findEdge(const Node& source, const Node& target, 
   1.374 +// 		  const Edge& prev = INVALID) const {
   1.375 +//       if (exitNode(source) && entryNode(target)) {
   1.376 +// 	return Parent::findEdge(source, target, prev);
   1.377 +//       } else {
   1.378 +// 	if (prev == INVALID && entryNode(source) && exitNode(target) && 
   1.379 +// 	    (typename Parent::Node&)source == (typename Parent::Node&)target) {
   1.380 +// 	  return Edge(INVALID, source);
   1.381 +// 	} else {
   1.382 +// 	  return INVALID;
   1.383 +// 	}
   1.384 +//       }
   1.385 +//     }
   1.386      
   1.387 -    template <typename T>
   1.388 -    class NodeMap : public MapBase<Node, T> {
   1.389 -      typedef typename Parent::template NodeMap<T> NodeImpl;
   1.390 -    public:
   1.391 -      NodeMap(const SplitGraphAdaptorBase& _graph) 
   1.392 -	: entry(_graph), exit(_graph) {}
   1.393 -      NodeMap(const SplitGraphAdaptorBase& _graph, const T& t) 
   1.394 -	: entry(_graph, t), exit(_graph, t) {}
   1.395 +//     template <typename T>
   1.396 +//     class NodeMap : public MapBase<Node, T> {
   1.397 +//       typedef typename Parent::template NodeMap<T> NodeImpl;
   1.398 +//     public:
   1.399 +//       NodeMap(const SplitGraphAdaptorBase& _graph) 
   1.400 +// 	: entry(_graph), exit(_graph) {}
   1.401 +//       NodeMap(const SplitGraphAdaptorBase& _graph, const T& t) 
   1.402 +// 	: entry(_graph, t), exit(_graph, t) {}
   1.403        
   1.404 -      void set(const Node& key, const T& val) {
   1.405 -	if (key.entry) { entry.set(key, val); }
   1.406 -	else {exit.set(key, val); }
   1.407 -      }
   1.408 +//       void set(const Node& key, const T& val) {
   1.409 +// 	if (key.entry) { entry.set(key, val); }
   1.410 +// 	else {exit.set(key, val); }
   1.411 +//       }
   1.412        
   1.413 -      typename MapTraits<NodeImpl>::ReturnValue 
   1.414 -      operator[](const Node& key) {
   1.415 -	if (key.entry) { return entry[key]; }
   1.416 -	else { return exit[key]; }
   1.417 -      }
   1.418 +//       typename MapTraits<NodeImpl>::ReturnValue 
   1.419 +//       operator[](const Node& key) {
   1.420 +// 	if (key.entry) { return entry[key]; }
   1.421 +// 	else { return exit[key]; }
   1.422 +//       }
   1.423  
   1.424 -      typename MapTraits<NodeImpl>::ConstReturnValue
   1.425 -      operator[](const Node& key) const {
   1.426 -	if (key.entry) { return entry[key]; }
   1.427 -	else { return exit[key]; }
   1.428 -      }
   1.429 +//       typename MapTraits<NodeImpl>::ConstReturnValue
   1.430 +//       operator[](const Node& key) const {
   1.431 +// 	if (key.entry) { return entry[key]; }
   1.432 +// 	else { return exit[key]; }
   1.433 +//       }
   1.434  
   1.435 -    private:
   1.436 -      NodeImpl entry, exit;
   1.437 -    };
   1.438 +//     private:
   1.439 +//       NodeImpl entry, exit;
   1.440 +//     };
   1.441  
   1.442 -    template <typename T>
   1.443 -    class EdgeMap : public MapBase<Edge, T> {
   1.444 -      typedef typename Parent::template NodeMap<T> NodeImpl;
   1.445 -      typedef typename Parent::template EdgeMap<T> EdgeImpl;
   1.446 -    public:
   1.447 -      EdgeMap(const SplitGraphAdaptorBase& _graph) 
   1.448 -	: bind(_graph), orig(_graph) {}
   1.449 -      EdgeMap(const SplitGraphAdaptorBase& _graph, const T& t) 
   1.450 -	: bind(_graph, t), orig(_graph, t) {}
   1.451 +//     template <typename T>
   1.452 +//     class EdgeMap : public MapBase<Edge, T> {
   1.453 +//       typedef typename Parent::template NodeMap<T> NodeImpl;
   1.454 +//       typedef typename Parent::template EdgeMap<T> EdgeImpl;
   1.455 +//     public:
   1.456 +//       EdgeMap(const SplitGraphAdaptorBase& _graph) 
   1.457 +// 	: bind(_graph), orig(_graph) {}
   1.458 +//       EdgeMap(const SplitGraphAdaptorBase& _graph, const T& t) 
   1.459 +// 	: bind(_graph, t), orig(_graph, t) {}
   1.460        
   1.461 -      void set(const Edge& key, const T& val) {
   1.462 -	if ((typename Parent::Edge&)key != INVALID) { orig.set(key, val); }
   1.463 -	else {bind.set(key.bind, val); }
   1.464 -      }
   1.465 +//       void set(const Edge& key, const T& val) {
   1.466 +// 	if ((typename Parent::Edge&)key != INVALID) { orig.set(key, val); }
   1.467 +// 	else {bind.set(key.bind, val); }
   1.468 +//       }
   1.469        
   1.470 -      typename MapTraits<EdgeImpl>::ReturnValue
   1.471 -      operator[](const Edge& key) {
   1.472 -	if ((typename Parent::Edge&)key != INVALID) { return orig[key]; }
   1.473 -	else {return bind[key.bind]; }
   1.474 -      }
   1.475 +//       typename MapTraits<EdgeImpl>::ReturnValue
   1.476 +//       operator[](const Edge& key) {
   1.477 +// 	if ((typename Parent::Edge&)key != INVALID) { return orig[key]; }
   1.478 +// 	else {return bind[key.bind]; }
   1.479 +//       }
   1.480  
   1.481 -      typename MapTraits<EdgeImpl>::ConstReturnValue
   1.482 -      operator[](const Edge& key) const {
   1.483 -	if ((typename Parent::Edge&)key != INVALID) { return orig[key]; }
   1.484 -	else {return bind[key.bind]; }
   1.485 -      }
   1.486 +//       typename MapTraits<EdgeImpl>::ConstReturnValue
   1.487 +//       operator[](const Edge& key) const {
   1.488 +// 	if ((typename Parent::Edge&)key != INVALID) { return orig[key]; }
   1.489 +// 	else {return bind[key.bind]; }
   1.490 +//       }
   1.491  
   1.492 -    private:
   1.493 -      typename Parent::template NodeMap<T> bind;
   1.494 -      typename Parent::template EdgeMap<T> orig;
   1.495 -    };
   1.496 +//     private:
   1.497 +//       typename Parent::template NodeMap<T> bind;
   1.498 +//       typename Parent::template EdgeMap<T> orig;
   1.499 +//     };
   1.500  
   1.501 -    template <typename EntryMap, typename ExitMap>
   1.502 -    class CombinedNodeMap : public MapBase<Node, typename EntryMap::Value> {
   1.503 -    public:
   1.504 -      typedef MapBase<Node, typename EntryMap::Value> Parent;
   1.505 +//     template <typename EntryMap, typename ExitMap>
   1.506 +//     class CombinedNodeMap : public MapBase<Node, typename EntryMap::Value> {
   1.507 +//     public:
   1.508 +//       typedef MapBase<Node, typename EntryMap::Value> Parent;
   1.509  
   1.510 -      typedef typename Parent::Key Key;
   1.511 -      typedef typename Parent::Value Value;
   1.512 +//       typedef typename Parent::Key Key;
   1.513 +//       typedef typename Parent::Value Value;
   1.514  
   1.515 -      CombinedNodeMap(EntryMap& _entryMap, ExitMap& _exitMap) 
   1.516 -	: entryMap(_entryMap), exitMap(_exitMap) {}
   1.517 +//       CombinedNodeMap(EntryMap& _entryMap, ExitMap& _exitMap) 
   1.518 +// 	: entryMap(_entryMap), exitMap(_exitMap) {}
   1.519  
   1.520 -      Value& operator[](const Key& key) {
   1.521 -	if (key.entry) {
   1.522 -	  return entryMap[key];
   1.523 -	} else {
   1.524 -	  return exitMap[key];
   1.525 -	}
   1.526 -      }
   1.527 +//       Value& operator[](const Key& key) {
   1.528 +// 	if (key.entry) {
   1.529 +// 	  return entryMap[key];
   1.530 +// 	} else {
   1.531 +// 	  return exitMap[key];
   1.532 +// 	}
   1.533 +//       }
   1.534  
   1.535 -      Value operator[](const Key& key) const {
   1.536 -	if (key.entry) {
   1.537 -	  return entryMap[key];
   1.538 -	} else {
   1.539 -	  return exitMap[key];
   1.540 -	}
   1.541 -      }
   1.542 +//       Value operator[](const Key& key) const {
   1.543 +// 	if (key.entry) {
   1.544 +// 	  return entryMap[key];
   1.545 +// 	} else {
   1.546 +// 	  return exitMap[key];
   1.547 +// 	}
   1.548 +//       }
   1.549  
   1.550 -      void set(const Key& key, const Value& value) {
   1.551 -	if (key.entry) {
   1.552 -	  entryMap.set(key, value);
   1.553 -	} else {
   1.554 -	  exitMap.set(key, value);
   1.555 -	}
   1.556 -      }
   1.557 +//       void set(const Key& key, const Value& value) {
   1.558 +// 	if (key.entry) {
   1.559 +// 	  entryMap.set(key, value);
   1.560 +// 	} else {
   1.561 +// 	  exitMap.set(key, value);
   1.562 +// 	}
   1.563 +//       }
   1.564        
   1.565 -    private:
   1.566 +//     private:
   1.567        
   1.568 -      EntryMap& entryMap;
   1.569 -      ExitMap& exitMap;
   1.570 +//       EntryMap& entryMap;
   1.571 +//       ExitMap& exitMap;
   1.572        
   1.573 -    };
   1.574 +//     };
   1.575  
   1.576 -    template <typename EdgeMap, typename NodeMap>
   1.577 -    class CombinedEdgeMap : public MapBase<Edge, typename EdgeMap::Value> {
   1.578 -    public:
   1.579 -      typedef MapBase<Edge, typename EdgeMap::Value> Parent;
   1.580 +//     template <typename EdgeMap, typename NodeMap>
   1.581 +//     class CombinedEdgeMap : public MapBase<Edge, typename EdgeMap::Value> {
   1.582 +//     public:
   1.583 +//       typedef MapBase<Edge, typename EdgeMap::Value> Parent;
   1.584  
   1.585 -      typedef typename Parent::Key Key;
   1.586 -      typedef typename Parent::Value Value;
   1.587 +//       typedef typename Parent::Key Key;
   1.588 +//       typedef typename Parent::Value Value;
   1.589  
   1.590 -      CombinedEdgeMap(EdgeMap& _edgeMap, NodeMap& _nodeMap) 
   1.591 -	: edgeMap(_edgeMap), nodeMap(_nodeMap) {}
   1.592 +//       CombinedEdgeMap(EdgeMap& _edgeMap, NodeMap& _nodeMap) 
   1.593 +// 	: edgeMap(_edgeMap), nodeMap(_nodeMap) {}
   1.594  
   1.595 -      void set(const Edge& edge, const Value& val) {
   1.596 -	if (SplitGraphAdaptorBase::originalEdge(edge)) {
   1.597 -	  edgeMap.set(edge, val);
   1.598 -	} else {
   1.599 -	  nodeMap.set(SplitGraphAdaptorBase::bindedNode(edge), val);
   1.600 -	}
   1.601 -      }
   1.602 +//       void set(const Edge& edge, const Value& val) {
   1.603 +// 	if (SplitGraphAdaptorBase::originalEdge(edge)) {
   1.604 +// 	  edgeMap.set(edge, val);
   1.605 +// 	} else {
   1.606 +// 	  nodeMap.set(SplitGraphAdaptorBase::bindedNode(edge), val);
   1.607 +// 	}
   1.608 +//       }
   1.609  
   1.610 -      Value operator[](const Key& edge) const {
   1.611 -	if (SplitGraphAdaptorBase::originalEdge(edge)) {
   1.612 -	  return edgeMap[edge];
   1.613 -	} else {
   1.614 -	  return nodeMap[SplitGraphAdaptorBase::bindedNode(edge)];
   1.615 -	}
   1.616 -      }      
   1.617 +//       Value operator[](const Key& edge) const {
   1.618 +// 	if (SplitGraphAdaptorBase::originalEdge(edge)) {
   1.619 +// 	  return edgeMap[edge];
   1.620 +// 	} else {
   1.621 +// 	  return nodeMap[SplitGraphAdaptorBase::bindedNode(edge)];
   1.622 +// 	}
   1.623 +//       }      
   1.624  
   1.625 -      Value& operator[](const Key& edge) {
   1.626 -	if (SplitGraphAdaptorBase::originalEdge(edge)) {
   1.627 -	  return edgeMap[edge];
   1.628 -	} else {
   1.629 -	  return nodeMap[SplitGraphAdaptorBase::bindedNode(edge)];
   1.630 -	}
   1.631 -      }      
   1.632 +//       Value& operator[](const Key& edge) {
   1.633 +// 	if (SplitGraphAdaptorBase::originalEdge(edge)) {
   1.634 +// 	  return edgeMap[edge];
   1.635 +// 	} else {
   1.636 +// 	  return nodeMap[SplitGraphAdaptorBase::bindedNode(edge)];
   1.637 +// 	}
   1.638 +//       }      
   1.639        
   1.640 -    private:
   1.641 -      EdgeMap& edgeMap;
   1.642 -      NodeMap& nodeMap;
   1.643 -    };
   1.644 +//     private:
   1.645 +//       EdgeMap& edgeMap;
   1.646 +//       NodeMap& nodeMap;
   1.647 +//     };
   1.648  
   1.649 -  };
   1.650 +//   };
   1.651  
   1.652 -  template <typename _Graph>
   1.653 -  class SplitGraphAdaptor 
   1.654 -    : public GraphAdaptorExtender<SplitGraphAdaptorBase<_Graph> > {
   1.655 -  public:
   1.656 -    typedef GraphAdaptorExtender<SplitGraphAdaptorBase<_Graph> > Parent;
   1.657 +//   template <typename _Graph>
   1.658 +//   class SplitGraphAdaptor 
   1.659 +//     : public GraphAdaptorExtender<SplitGraphAdaptorBase<_Graph> > {
   1.660 +//   public:
   1.661 +//     typedef GraphAdaptorExtender<SplitGraphAdaptorBase<_Graph> > Parent;
   1.662  
   1.663 -    SplitGraphAdaptor(_Graph& graph) {
   1.664 -      Parent::setGraph(graph);
   1.665 -    }
   1.666 +//     SplitGraphAdaptor(_Graph& graph) {
   1.667 +//       Parent::setGraph(graph);
   1.668 +//     }
   1.669  
   1.670  
   1.671 -  };
   1.672 +//   };
   1.673  
   1.674  } //namespace lemon
   1.675