lemon/bits/iterable_graph_extender.h
changeset 1512 e54392395480
parent 1435 8e85e6bbefdf
child 1564 16d316199cf6
equal deleted inserted replaced
0:e87501444235 1:f0665a4af974
     1 // -*- c++ -*-
     1 // -*- c++ -*-
     2 #ifndef LEMON_ITERABLE_GRAPH_EXTENDER_H
     2 #ifndef LEMON_ITERABLE_GRAPH_EXTENDER_H
     3 #define LEMON_ITERABLE_GRAPH_EXTENDER_H
     3 #define LEMON_ITERABLE_GRAPH_EXTENDER_H
     4 
     4 
     5 #include <lemon/invalid.h>
     5 #include <lemon/invalid.h>
       
     6 #include <lemon/utility.h>
     6 
     7 
     7 namespace lemon {
     8 namespace lemon {
     8   
     9   
     9   template <typename _Base>
    10   template <typename _Base>
    10   class IterableGraphExtender : public _Base {
    11   class IterableGraphExtender : public _Base {
    11   public:
    12   public:
    12 
    13 
       
    14     /// Indicates that the graph is undirected.
       
    15 
       
    16     ///\todo Better name?
       
    17     ///
       
    18     ///\bug Should it be here?
       
    19     typedef False UndirTag;
       
    20 
    13     typedef _Base Parent;
    21     typedef _Base Parent;
    14     typedef IterableGraphExtender<_Base> Graph;
    22     typedef IterableGraphExtender<_Base> Graph;
    15 
    23 
    16     typedef typename Parent::Node Node;
    24     typedef typename Parent::Node Node;
    17     typedef typename Parent::Edge Edge;
    25     typedef typename Parent::Edge Edge;
   168   
   176   
   169   template <typename _Base>
   177   template <typename _Base>
   170   class IterableUndirGraphExtender : public IterableGraphExtender<_Base> {
   178   class IterableUndirGraphExtender : public IterableGraphExtender<_Base> {
   171   public:
   179   public:
   172 
   180 
       
   181     /// Indicates that the graph is undirected.
       
   182 
       
   183     ///\todo Better name?
       
   184     ///
       
   185     ///\bug Should it be here?
       
   186     ///\bug Should be tested in the concept checker whether it is defined
       
   187     ///correctly.
       
   188     typedef True UndirTag;
       
   189 
   173     typedef IterableGraphExtender<_Base> Parent;
   190     typedef IterableGraphExtender<_Base> Parent;
   174     typedef IterableUndirGraphExtender<_Base> Graph;
   191     typedef IterableUndirGraphExtender<_Base> Graph;
   175     typedef typename Parent::Node Node;
   192     typedef typename Parent::Node Node;
   176 
   193 
   177     typedef typename Parent::UndirEdge UndirEdge;
   194     typedef typename Parent::UndirEdge UndirEdge;