Changeset 1267:a93f94dbe3d3 in lemon-0.x for src/lemon/default_map.h
- Timestamp:
- 03/26/05 00:31:57 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1694
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/lemon/default_map.h
r1164 r1267 43 43 44 44 45 template <typename _Graph, typename _Item, typename _ ItemIt, typename _Value>45 template <typename _Graph, typename _Item, typename _Value> 46 46 struct DefaultMapSelector { 47 typedef ArrayMap<_Graph, _Item, _ ItemIt, _Value> Map;47 typedef ArrayMap<_Graph, _Item, _Value> Map; 48 48 }; 49 49 50 50 // bool 51 template <typename _Graph, typename _Item , typename _ItemIt>52 struct DefaultMapSelector<_Graph, _Item, _ItemIt,bool> {51 template <typename _Graph, typename _Item> 52 struct DefaultMapSelector<_Graph, _Item, bool> { 53 53 typedef VectorMap<_Graph, _Item, bool> Map; 54 54 }; 55 55 56 56 // char 57 template <typename _Graph, typename _Item , typename _ItemIt>58 struct DefaultMapSelector<_Graph, _Item, _ItemIt,char> {57 template <typename _Graph, typename _Item> 58 struct DefaultMapSelector<_Graph, _Item, char> { 59 59 typedef VectorMap<_Graph, _Item, char> Map; 60 60 }; 61 61 62 template <typename _Graph, typename _Item , typename _ItemIt>63 struct DefaultMapSelector<_Graph, _Item, _ItemIt,signed char> {62 template <typename _Graph, typename _Item> 63 struct DefaultMapSelector<_Graph, _Item, signed char> { 64 64 typedef VectorMap<_Graph, _Item, signed char> Map; 65 65 }; 66 66 67 template <typename _Graph, typename _Item , typename _ItemIt>68 struct DefaultMapSelector<_Graph, _Item, _ItemIt,unsigned char> {67 template <typename _Graph, typename _Item> 68 struct DefaultMapSelector<_Graph, _Item, unsigned char> { 69 69 typedef VectorMap<_Graph, _Item, unsigned char> Map; 70 70 }; … … 72 72 73 73 // int 74 template <typename _Graph, typename _Item , typename _ItemIt>75 struct DefaultMapSelector<_Graph, _Item, _ItemIt,signed int> {74 template <typename _Graph, typename _Item> 75 struct DefaultMapSelector<_Graph, _Item, signed int> { 76 76 typedef VectorMap<_Graph, _Item, signed int> Map; 77 77 }; 78 78 79 template <typename _Graph, typename _Item , typename _ItemIt>80 struct DefaultMapSelector<_Graph, _Item, _ItemIt,unsigned int> {79 template <typename _Graph, typename _Item> 80 struct DefaultMapSelector<_Graph, _Item, unsigned int> { 81 81 typedef VectorMap<_Graph, _Item, unsigned int> Map; 82 82 }; … … 84 84 85 85 // short 86 template <typename _Graph, typename _Item , typename _ItemIt>87 struct DefaultMapSelector<_Graph, _Item, _ItemIt,signed short> {86 template <typename _Graph, typename _Item> 87 struct DefaultMapSelector<_Graph, _Item, signed short> { 88 88 typedef VectorMap<_Graph, _Item, signed short> Map; 89 89 }; 90 90 91 template <typename _Graph, typename _Item , typename _ItemIt>92 struct DefaultMapSelector<_Graph, _Item, _ItemIt,unsigned short> {91 template <typename _Graph, typename _Item> 92 struct DefaultMapSelector<_Graph, _Item, unsigned short> { 93 93 typedef VectorMap<_Graph, _Item, unsigned short> Map; 94 94 }; … … 96 96 97 97 // long 98 template <typename _Graph, typename _Item , typename _ItemIt>99 struct DefaultMapSelector<_Graph, _Item, _ItemIt,signed long> {98 template <typename _Graph, typename _Item> 99 struct DefaultMapSelector<_Graph, _Item, signed long> { 100 100 typedef VectorMap<_Graph, _Item, signed long> Map; 101 101 }; 102 102 103 template <typename _Graph, typename _Item , typename _ItemIt>104 struct DefaultMapSelector<_Graph, _Item, _ItemIt,unsigned long> {103 template <typename _Graph, typename _Item> 104 struct DefaultMapSelector<_Graph, _Item, unsigned long> { 105 105 typedef VectorMap<_Graph, _Item, unsigned long> Map; 106 106 }; … … 110 110 111 111 // float 112 template <typename _Graph, typename _Item , typename _ItemIt>113 struct DefaultMapSelector<_Graph, _Item, _ItemIt,float> {112 template <typename _Graph, typename _Item> 113 struct DefaultMapSelector<_Graph, _Item, float> { 114 114 typedef VectorMap<_Graph, _Item, float> Map; 115 115 }; … … 117 117 118 118 // double 119 template <typename _Graph, typename _Item , typename _ItemIt>120 struct DefaultMapSelector<_Graph, _Item, _ItemIt,double> {119 template <typename _Graph, typename _Item> 120 struct DefaultMapSelector<_Graph, _Item, double> { 121 121 typedef VectorMap<_Graph, _Item, double> Map; 122 122 }; … … 124 124 125 125 // long double 126 template <typename _Graph, typename _Item , typename _ItemIt>127 struct DefaultMapSelector<_Graph, _Item, _ItemIt,long double> {126 template <typename _Graph, typename _Item> 127 struct DefaultMapSelector<_Graph, _Item, long double> { 128 128 typedef VectorMap<_Graph, _Item, long double> Map; 129 129 }; … … 131 131 132 132 // pointer 133 template <typename _Graph, typename _Item, typename _ ItemIt, typename _Ptr>134 struct DefaultMapSelector<_Graph, _Item, _ ItemIt, _Ptr*> {133 template <typename _Graph, typename _Item, typename _Ptr> 134 struct DefaultMapSelector<_Graph, _Item, _Ptr*> { 135 135 typedef VectorMap<_Graph, _Item, _Ptr*> Map; 136 136 }; … … 138 138 139 139 140 template <typename _Graph, 141 typename _Item, 142 typename _ItemIt, 143 typename _Value> 144 class DefaultMap : public DefaultMapSelector<_Graph, _Item, _ItemIt, _Value>::Map { 140 template < 141 typename _Graph, 142 typename _Item, 143 typename _Value> 144 class DefaultMap 145 : public DefaultMapSelector<_Graph, _Item, _Value>::Map { 145 146 public: 146 typedef typename DefaultMapSelector<_Graph, _Item, _ ItemIt, _Value>::Map Parent;147 typedef DefaultMap<_Graph, _Item, _ ItemIt, _Value> Map;147 typedef typename DefaultMapSelector<_Graph, _Item, _Value>::Map Parent; 148 typedef DefaultMap<_Graph, _Item, _Value> Map; 148 149 149 150 typedef typename Parent::Graph Graph; … … 171 172 172 173 template <typename _Value> 173 class NodeMap : public DefaultMap<Graph, Node, NodeIt, _Value> { 174 class NodeMap 175 : public IterableMapExtender<DefaultMap<Graph, Node, _Value> > { 174 176 public: 175 177 typedef DefaultMappableGraphExtender Graph; 176 typedef DefaultMap<Graph, Node, NodeIt, _Value> Parent;178 typedef IterableMapExtender<DefaultMap<Graph, Node, _Value> > Parent; 177 179 178 180 NodeMap(const Graph& _g) … … 183 185 184 186 template <typename _Value> 185 class EdgeMap : public DefaultMap<Graph, Edge, EdgeIt, _Value> { 187 class EdgeMap 188 : public IterableMapExtender<DefaultMap<Graph, Edge, _Value> > { 186 189 public: 187 190 typedef DefaultMappableGraphExtender Graph; 188 typedef DefaultMap<Graph, Edge, EdgeIt, _Value> Parent;191 typedef IterableMapExtender<DefaultMap<Graph, Edge, _Value> > Parent; 189 192 190 193 EdgeMap(const Graph& _g) … … 205 208 206 209 typedef typename Parent::UndirEdge UndirEdge; 207 typedef typename Parent::UndirEdgeIt UndirEdgeIt;208 210 209 211 template <typename _Value> 210 class UndirEdgeMap :211 public DefaultMap<Graph, UndirEdge, UndirEdgeIt, _Value> {212 class UndirEdgeMap 213 : public IterableMapExtender<DefaultMap<Graph, UndirEdge, _Value> > { 212 214 public: 213 215 typedef MappableUndirGraphExtender Graph; 214 typedef DefaultMap<Graph, UndirEdge, UndirEdgeIt, _Value> Parent; 216 typedef IterableMapExtender< 217 DefaultMap<Graph, UndirEdge, _Value> > Parent; 215 218 216 219 UndirEdgeMap(const Graph& _g)
Note: See TracChangeset
for help on using the changeset viewer.