Add new ItemSetTraits for ANode and BNode
authordeba
Fri, 27 Jan 2006 14:18:11 +0000
changeset 1915f1f523d39d32
parent 1914 7ef30a71937f
child 1916 e7d4eb908e87
Add new ItemSetTraits for ANode and BNode
lemon/traits.h
     1.1 --- a/lemon/traits.h	Fri Jan 27 08:19:42 2006 +0000
     1.2 +++ b/lemon/traits.h	Fri Jan 27 14:18:11 2006 +0000
     1.3 @@ -93,6 +93,52 @@
     1.4  
     1.5    };
     1.6  
     1.7 +
     1.8 +  template <typename _Graph>
     1.9 +  class ItemSetTraits<_Graph, typename _Graph::ANode> {
    1.10 +  public:
    1.11 +    
    1.12 +    typedef _Graph Graph;
    1.13 +
    1.14 +    typedef typename Graph::ANode Item;
    1.15 +    typedef typename Graph::ANodeIt ItemIt;
    1.16 +
    1.17 +    template <typename _Value>
    1.18 +    class Map : public Graph::template ANodeMap<_Value> {
    1.19 +    public:
    1.20 +      typedef typename Graph::template ANodeMap<_Value> Parent; 
    1.21 +      typedef typename Parent::Value Value;
    1.22 +
    1.23 +      Map(const Graph& _graph) : Parent(_graph) {}
    1.24 +      Map(const Graph& _graph, const Value& _value) 
    1.25 +	: Parent(_graph, _value) {}
    1.26 +    };
    1.27 +
    1.28 +  };
    1.29 +
    1.30 +  template <typename _Graph>
    1.31 +  class ItemSetTraits<_Graph, typename _Graph::BNode> {
    1.32 +  public:
    1.33 +    
    1.34 +    typedef _Graph Graph;
    1.35 +
    1.36 +    typedef typename Graph::BNode Item;
    1.37 +    typedef typename Graph::BNodeIt ItemIt;
    1.38 +
    1.39 +    template <typename _Value>
    1.40 +    class Map : public Graph::template BNodeMap<_Value> {
    1.41 +    public:
    1.42 +      typedef typename Graph::template BNodeMap<_Value> Parent; 
    1.43 +      typedef typename Parent::Value Value;
    1.44 +
    1.45 +      Map(const Graph& _graph) : Parent(_graph) {}
    1.46 +      Map(const Graph& _graph, const Value& _value) 
    1.47 +	: Parent(_graph, _value) {}
    1.48 +    };
    1.49 +
    1.50 +  };
    1.51 +
    1.52 +
    1.53    template <typename Map, typename Enable = void>
    1.54    struct MapTraits {
    1.55      typedef False ReferenceMapTag;