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;