lemon/edge_set.h
changeset 1979 c2992fd74dad
parent 1962 c1c3a0fae8a1
child 1990 15fb7a4ea6be
     1.1 --- a/lemon/edge_set.h	Wed Feb 22 12:45:59 2006 +0000
     1.2 +++ b/lemon/edge_set.h	Wed Feb 22 18:26:56 2006 +0000
     1.3 @@ -19,13 +19,8 @@
     1.4  #ifndef LEMON_EDGE_SET_H
     1.5  #define LEMON_EDGE_SET_H
     1.6  
     1.7 -#include <lemon/bits/erasable_graph_extender.h>
     1.8 -#include <lemon/bits/clearable_graph_extender.h>
     1.9 -#include <lemon/bits/extendable_graph_extender.h>
    1.10 -#include <lemon/bits/iterable_graph_extender.h>
    1.11 -#include <lemon/bits/alteration_notifier.h>
    1.12 -#include <lemon/bits/default_map.h>
    1.13 -#include <lemon/bits/graph_extender.h>
    1.14 +
    1.15 +#include <lemon/bits/edge_set_extender.h>
    1.16  
    1.17  /// \ingroup graphs
    1.18  /// \file
    1.19 @@ -229,26 +224,11 @@
    1.20    /// In the edge extension and removing it conforms to the 
    1.21    /// \ref concept::ErasableGraph "ErasableGraph" concept.
    1.22    template <typename _Graph>
    1.23 -  class ListEdgeSet :
    1.24 -    public ErasableEdgeSetExtender<
    1.25 -    ClearableEdgeSetExtender<
    1.26 -    ExtendableEdgeSetExtender<
    1.27 -    MappableEdgeSetExtender<
    1.28 -    IterableGraphExtender<
    1.29 -    AlterableEdgeSetExtender<
    1.30 -    GraphExtender<
    1.31 -    ListEdgeSetBase<_Graph> > > > > > > > {
    1.32 +  class ListEdgeSet : public EdgeSetExtender<ListEdgeSetBase<_Graph> > {
    1.33  
    1.34    public:
    1.35  
    1.36 -    typedef ErasableEdgeSetExtender<
    1.37 -      ClearableEdgeSetExtender<
    1.38 -      ExtendableEdgeSetExtender<
    1.39 -      MappableEdgeSetExtender<
    1.40 -      IterableGraphExtender<
    1.41 -      AlterableEdgeSetExtender<
    1.42 -      GraphExtender<
    1.43 -      ListEdgeSetBase<_Graph> > > > > > > > Parent;
    1.44 +    typedef EdgeSetExtender<ListEdgeSetBase<_Graph> > Parent;
    1.45      
    1.46      typedef typename Parent::Node Node;
    1.47      typedef typename Parent::Edge Edge;
    1.48 @@ -336,26 +316,13 @@
    1.49    /// In the edge extension and removing it conforms to the 
    1.50    /// \ref concept::ErasableUGraph "ErasableUGraph" concept.
    1.51    template <typename _Graph>
    1.52 -  class ListUEdgeSet :
    1.53 -    public ErasableUEdgeSetExtender<
    1.54 -    ClearableUEdgeSetExtender<
    1.55 -    ExtendableUEdgeSetExtender<
    1.56 -    MappableUEdgeSetExtender<
    1.57 -    IterableUGraphExtender<
    1.58 -    AlterableUEdgeSetExtender<
    1.59 -    UGraphExtender<
    1.60 -    ListEdgeSetBase<_Graph> > > > > > > > {
    1.61 +  class ListUEdgeSet 
    1.62 +    : public UEdgeSetExtender<UGraphBaseExtender<ListEdgeSetBase<_Graph> > > {
    1.63  
    1.64    public:
    1.65  
    1.66 -    typedef ErasableUEdgeSetExtender<
    1.67 -      ClearableUEdgeSetExtender<
    1.68 -      ExtendableUEdgeSetExtender<
    1.69 -      MappableUEdgeSetExtender<
    1.70 -      IterableUGraphExtender<
    1.71 -      AlterableUEdgeSetExtender<
    1.72 -      UGraphExtender<
    1.73 -      ListEdgeSetBase<_Graph> > > > > > > > Parent;
    1.74 +    typedef UEdgeSetExtender<UGraphBaseExtender<
    1.75 +      ListEdgeSetBase<_Graph> > > Parent;
    1.76      
    1.77      typedef typename Parent::Node Node;
    1.78      typedef typename Parent::Edge Edge;
    1.79 @@ -567,24 +534,11 @@
    1.80    /// In the edge extension and removing it conforms to the 
    1.81    /// \ref concept::ExtendableGraph "ExtendableGraph" concept.
    1.82    template <typename _Graph>
    1.83 -  class SmartEdgeSet :
    1.84 -    public ClearableEdgeSetExtender<
    1.85 -    ExtendableEdgeSetExtender<
    1.86 -    MappableEdgeSetExtender<
    1.87 -    IterableGraphExtender<
    1.88 -    AlterableEdgeSetExtender<
    1.89 -    GraphExtender<
    1.90 -    SmartEdgeSetBase<_Graph> > > > > > > {
    1.91 +  class SmartEdgeSet : public EdgeSetExtender<SmartEdgeSetBase<_Graph> > {
    1.92  
    1.93    public:
    1.94  
    1.95 -    typedef ClearableEdgeSetExtender<
    1.96 -      ExtendableEdgeSetExtender<
    1.97 -      MappableEdgeSetExtender<
    1.98 -      IterableGraphExtender<
    1.99 -      AlterableEdgeSetExtender<
   1.100 -      GraphExtender<
   1.101 -      SmartEdgeSetBase<_Graph> > > > > > > Parent;
   1.102 +    typedef EdgeSetExtender<SmartEdgeSetBase<_Graph> > Parent;
   1.103      
   1.104      typedef typename Parent::Node Node;
   1.105      typedef typename Parent::Edge Edge;
   1.106 @@ -671,24 +625,13 @@
   1.107    /// In the edge extension and removing it conforms to the 
   1.108    /// \ref concept::ExtendableUGraph "ExtendableUGraph" concept.
   1.109    template <typename _Graph>
   1.110 -  class SmartUEdgeSet :
   1.111 -    public ClearableUEdgeSetExtender<
   1.112 -    ExtendableUEdgeSetExtender<
   1.113 -    MappableUEdgeSetExtender<
   1.114 -    IterableUGraphExtender<
   1.115 -    AlterableUEdgeSetExtender<
   1.116 -    UGraphExtender<
   1.117 -    SmartEdgeSetBase<_Graph> > > > > > > {
   1.118 +  class SmartUEdgeSet 
   1.119 +    : public UEdgeSetExtender<UGraphBaseExtender<SmartEdgeSetBase<_Graph> > > {
   1.120  
   1.121    public:
   1.122  
   1.123 -    typedef ClearableUEdgeSetExtender<
   1.124 -      ExtendableUEdgeSetExtender<
   1.125 -      MappableUEdgeSetExtender<
   1.126 -      IterableUGraphExtender<
   1.127 -      AlterableUEdgeSetExtender<
   1.128 -      UGraphExtender<
   1.129 -      SmartEdgeSetBase<_Graph> > > > > > > Parent;
   1.130 +    typedef UEdgeSetExtender<UGraphBaseExtender<
   1.131 +      SmartEdgeSetBase<_Graph> > > Parent;
   1.132      
   1.133      typedef typename Parent::Node Node;
   1.134      typedef typename Parent::Edge Edge;