Changeset 617:4137ef9aacc6 in lemon-main
- Timestamp:
- 04/24/09 11:54:48 (16 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- lemon
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/adaptors.h
r579 r617 110 110 template <typename V> 111 111 class NodeMap : public DGR::template NodeMap<V> { 112 typedef typename DGR::template NodeMap<V> Parent; 113 112 114 public: 113 114 typedef typename DGR::template NodeMap<V> Parent;115 116 115 explicit NodeMap(const Adaptor& adaptor) 117 116 : Parent(*adaptor._digraph) {} 118 119 117 NodeMap(const Adaptor& adaptor, const V& value) 120 118 : Parent(*adaptor._digraph, value) { } … … 135 133 template <typename V> 136 134 class ArcMap : public DGR::template ArcMap<V> { 135 typedef typename DGR::template ArcMap<V> Parent; 136 137 137 public: 138 139 typedef typename DGR::template ArcMap<V> Parent;140 141 138 explicit ArcMap(const DigraphAdaptorBase<DGR>& adaptor) 142 139 : Parent(*adaptor._digraph) {} 143 144 140 ArcMap(const DigraphAdaptorBase<DGR>& adaptor, const V& value) 145 141 : Parent(*adaptor._digraph, value) {} … … 256 252 template <typename V> 257 253 class NodeMap : public GR::template NodeMap<V> { 254 typedef typename GR::template NodeMap<V> Parent; 255 258 256 public: 259 typedef typename GR::template NodeMap<V> Parent;260 257 explicit NodeMap(const GraphAdaptorBase<GR>& adapter) 261 258 : Parent(*adapter._graph) {} … … 278 275 template <typename V> 279 276 class ArcMap : public GR::template ArcMap<V> { 277 typedef typename GR::template ArcMap<V> Parent; 278 280 279 public: 281 typedef typename GR::template ArcMap<V> Parent;282 280 explicit ArcMap(const GraphAdaptorBase<GR>& adapter) 283 281 : Parent(*adapter._graph) {} … … 299 297 template <typename V> 300 298 class EdgeMap : public GR::template EdgeMap<V> { 299 typedef typename GR::template EdgeMap<V> Parent; 300 301 301 public: 302 typedef typename GR::template EdgeMap<V> Parent;303 302 explicit EdgeMap(const GraphAdaptorBase<GR>& adapter) 304 303 : Parent(*adapter._graph) {} … … 322 321 template <typename DGR> 323 322 class ReverseDigraphBase : public DigraphAdaptorBase<DGR> { 323 typedef DigraphAdaptorBase<DGR> Parent; 324 324 public: 325 325 typedef DGR Digraph; 326 typedef DigraphAdaptorBase<DGR> Parent;327 326 protected: 328 327 ReverseDigraphBase() : Parent() { } … … 375 374 public DigraphAdaptorExtender<ReverseDigraphBase<DGR> > { 376 375 #endif 376 typedef DigraphAdaptorExtender<ReverseDigraphBase<DGR> > Parent; 377 377 public: 378 378 /// The type of the adapted digraph. 379 379 typedef DGR Digraph; 380 typedef DigraphAdaptorExtender<ReverseDigraphBase<DGR> > Parent;381 380 protected: 382 381 ReverseDigraph() { } … … 404 403 template <typename DGR, typename NF, typename AF, bool ch = true> 405 404 class SubDigraphBase : public DigraphAdaptorBase<DGR> { 405 typedef DigraphAdaptorBase<DGR> Parent; 406 406 public: 407 407 typedef DGR Digraph; … … 410 410 411 411 typedef SubDigraphBase Adaptor; 412 typedef DigraphAdaptorBase<DGR> Parent;413 412 protected: 414 413 NF* _node_filter; … … 510 509 : public SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>, 511 510 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> { 511 typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>, 512 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent; 513 512 514 public: 513 515 typedef V Value; 514 typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,515 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent;516 516 517 517 NodeMap(const SubDigraphBase<DGR, NF, AF, ch>& adaptor) … … 536 536 : public SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>, 537 537 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> { 538 typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>, 539 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> Parent; 540 538 541 public: 539 542 typedef V Value; 540 typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, ch>,541 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> Parent;542 543 543 544 ArcMap(const SubDigraphBase<DGR, NF, AF, ch>& adaptor) … … 563 564 class SubDigraphBase<DGR, NF, AF, false> 564 565 : public DigraphAdaptorBase<DGR> { 566 typedef DigraphAdaptorBase<DGR> Parent; 565 567 public: 566 568 typedef DGR Digraph; … … 569 571 570 572 typedef SubDigraphBase Adaptor; 571 typedef DigraphAdaptorBase<Digraph> Parent;572 573 protected: 573 574 NF* _node_filter; … … 651 652 : public SubMapExtender<SubDigraphBase<DGR, NF, AF, false>, 652 653 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> { 654 typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>, 655 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent; 656 653 657 public: 654 658 typedef V Value; 655 typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>,656 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, NodeMap<V>)> Parent;657 659 658 660 NodeMap(const SubDigraphBase<DGR, NF, AF, false>& adaptor) … … 677 679 : public SubMapExtender<SubDigraphBase<DGR, NF, AF, false>, 678 680 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> { 681 typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>, 682 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> Parent; 683 679 684 public: 680 685 typedef V Value; 681 typedef SubMapExtender<SubDigraphBase<DGR, NF, AF, false>,682 LEMON_SCOPE_FIX(DigraphAdaptorBase<DGR>, ArcMap<V>)> Parent;683 686 684 687 ArcMap(const SubDigraphBase<DGR, NF, AF, false>& adaptor) … … 864 867 template <typename GR, typename NF, typename EF, bool ch = true> 865 868 class SubGraphBase : public GraphAdaptorBase<GR> { 869 typedef GraphAdaptorBase<GR> Parent; 866 870 public: 867 871 typedef GR Graph; … … 870 874 871 875 typedef SubGraphBase Adaptor; 872 typedef GraphAdaptorBase<GR> Parent;873 876 protected: 874 877 … … 1017 1020 : public SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 1018 1021 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> { 1022 typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 1023 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent; 1024 1019 1025 public: 1020 1026 typedef V Value; 1021 typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>,1022 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent;1023 1027 1024 1028 NodeMap(const SubGraphBase<GR, NF, EF, ch>& adaptor) … … 1043 1047 : public SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 1044 1048 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> { 1049 typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 1050 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent; 1051 1045 1052 public: 1046 1053 typedef V Value; 1047 typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>,1048 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent;1049 1054 1050 1055 ArcMap(const SubGraphBase<GR, NF, EF, ch>& adaptor) … … 1069 1074 : public SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 1070 1075 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> { 1076 typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>, 1077 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent; 1078 1071 1079 public: 1072 1080 typedef V Value; 1073 typedef SubMapExtender<SubGraphBase<GR, NF, EF, ch>,1074 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent;1075 1081 1076 1082 EdgeMap(const SubGraphBase<GR, NF, EF, ch>& adaptor) … … 1097 1103 class SubGraphBase<GR, NF, EF, false> 1098 1104 : public GraphAdaptorBase<GR> { 1105 typedef GraphAdaptorBase<GR> Parent; 1099 1106 public: 1100 1107 typedef GR Graph; … … 1103 1110 1104 1111 typedef SubGraphBase Adaptor; 1105 typedef GraphAdaptorBase<GR> Parent;1106 1112 protected: 1107 1113 NF* _node_filter; … … 1212 1218 : public SubMapExtender<SubGraphBase<GR, NF, EF, false>, 1213 1219 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> { 1220 typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 1221 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent; 1222 1214 1223 public: 1215 1224 typedef V Value; 1216 typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>,1217 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, NodeMap<V>)> Parent;1218 1225 1219 1226 NodeMap(const SubGraphBase<GR, NF, EF, false>& adaptor) … … 1238 1245 : public SubMapExtender<SubGraphBase<GR, NF, EF, false>, 1239 1246 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> { 1247 typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 1248 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent; 1249 1240 1250 public: 1241 1251 typedef V Value; 1242 typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>,1243 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, ArcMap<V>)> Parent;1244 1252 1245 1253 ArcMap(const SubGraphBase<GR, NF, EF, false>& adaptor) … … 1264 1272 : public SubMapExtender<SubGraphBase<GR, NF, EF, false>, 1265 1273 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> { 1274 typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>, 1275 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent; 1276 1266 1277 public: 1267 1278 typedef V Value; 1268 typedef SubMapExtender<SubGraphBase<GR, NF, EF, false>,1269 LEMON_SCOPE_FIX(GraphAdaptorBase<GR>, EdgeMap<V>)> Parent;1270 1279 1271 1280 EdgeMap(const SubGraphBase<GR, NF, EF, false>& adaptor) … … 1486 1495 true> > { 1487 1496 #endif 1488 public:1489 1490 typedef GR Digraph;1491 typedef NF NodeFilterMap;1492 1493 1497 typedef DigraphAdaptorExtender< 1494 1498 SubDigraphBase<GR, NF, ConstMap<typename GR::Arc, Const<bool, true> >, 1495 1499 true> > Parent; 1500 1501 public: 1502 1503 typedef GR Digraph; 1504 typedef NF NodeFilterMap; 1496 1505 1497 1506 typedef typename Parent::Node Node; … … 1549 1558 true> > { 1550 1559 1551 public:1552 typedef GR Graph;1553 typedef NF NodeFilterMap;1554 1560 typedef GraphAdaptorExtender< 1555 1561 SubGraphBase<GR, NF, ConstMap<typename GR::Edge, Const<bool, true> >, 1556 1562 true> > Parent; 1557 1563 1564 public: 1565 1566 typedef GR Graph; 1567 typedef NF NodeFilterMap; 1568 1558 1569 typedef typename Parent::Node Node; 1570 1559 1571 protected: 1560 1572 ConstMap<typename GR::Edge, Const<bool, true> > const_true_map; … … 1630 1642 AF, false> > { 1631 1643 #endif 1632 public: 1644 typedef DigraphAdaptorExtender< 1645 SubDigraphBase<DGR, ConstMap<typename DGR::Node, Const<bool, true> >, 1646 AF, false> > Parent; 1647 1648 public: 1649 1633 1650 /// The type of the adapted digraph. 1634 1651 typedef DGR Digraph; 1635 1652 /// The type of the arc filter map. 1636 1653 typedef AF ArcFilterMap; 1637 1638 typedef DigraphAdaptorExtender<1639 SubDigraphBase<DGR, ConstMap<typename DGR::Node, Const<bool, true> >,1640 AF, false> > Parent;1641 1654 1642 1655 typedef typename Parent::Arc Arc; … … 1739 1752 EF, false> > { 1740 1753 #endif 1741 public: 1754 typedef GraphAdaptorExtender< 1755 SubGraphBase<GR, ConstMap<typename GR::Node, Const<bool, true > >, 1756 EF, false> > Parent; 1757 1758 public: 1759 1742 1760 /// The type of the adapted graph. 1743 1761 typedef GR Graph; 1744 1762 /// The type of the edge filter map. 1745 1763 typedef EF EdgeFilterMap; 1746 1747 typedef GraphAdaptorExtender<1748 SubGraphBase<GR, ConstMap<typename GR::Node, Const<bool, true > >,1749 EF, false> > Parent;1750 1764 1751 1765 typedef typename Parent::Edge Edge; … … 2112 2126 template <typename V> 2113 2127 class NodeMap : public DGR::template NodeMap<V> { 2128 typedef typename DGR::template NodeMap<V> Parent; 2129 2114 2130 public: 2115 2116 2131 typedef V Value; 2117 typedef typename DGR::template NodeMap<Value> Parent;2118 2132 2119 2133 explicit NodeMap(const UndirectorBase<DGR>& adaptor) … … 2138 2152 template <typename V> 2139 2153 class ArcMap 2140 : public SubMapExtender<UndirectorBase<DGR>, ArcMapBase<V> > 2141 { 2154 : public SubMapExtender<UndirectorBase<DGR>, ArcMapBase<V> > { 2155 typedef SubMapExtender<UndirectorBase<DGR>, ArcMapBase<V> > Parent; 2156 2142 2157 public: 2143 2158 typedef V Value; 2144 typedef SubMapExtender<Adaptor, ArcMapBase<V> > Parent;2145 2159 2146 2160 explicit ArcMap(const UndirectorBase<DGR>& adaptor) … … 2164 2178 template <typename V> 2165 2179 class EdgeMap : public Digraph::template ArcMap<V> { 2180 typedef typename Digraph::template ArcMap<V> Parent; 2181 2166 2182 public: 2167 2168 2183 typedef V Value; 2169 typedef typename Digraph::template ArcMap<V> Parent;2170 2184 2171 2185 explicit EdgeMap(const UndirectorBase<DGR>& adaptor) … … 2239 2253 public GraphAdaptorExtender<UndirectorBase<DGR> > { 2240 2254 #endif 2255 typedef GraphAdaptorExtender<UndirectorBase<DGR> > Parent; 2241 2256 public: 2242 2257 /// The type of the adapted digraph. 2243 2258 typedef DGR Digraph; 2244 typedef GraphAdaptorExtender<UndirectorBase<DGR> > Parent;2245 2259 protected: 2246 2260 Undirector() { } … … 2450 2464 template <typename V> 2451 2465 class NodeMap : public GR::template NodeMap<V> { 2466 typedef typename GR::template NodeMap<V> Parent; 2467 2452 2468 public: 2453 2454 typedef typename GR::template NodeMap<V> Parent;2455 2469 2456 2470 explicit NodeMap(const OrienterBase<GR, DM>& adapter) … … 2475 2489 template <typename V> 2476 2490 class ArcMap : public GR::template EdgeMap<V> { 2491 typedef typename Graph::template EdgeMap<V> Parent; 2492 2477 2493 public: 2478 2479 typedef typename Graph::template EdgeMap<V> Parent;2480 2494 2481 2495 explicit ArcMap(const OrienterBase<GR, DM>& adapter) … … 2547 2561 public DigraphAdaptorExtender<OrienterBase<GR, DM> > { 2548 2562 #endif 2563 typedef DigraphAdaptorExtender<OrienterBase<GR, DM> > Parent; 2549 2564 public: 2550 2565 … … 2554 2569 typedef DM DirectionMap; 2555 2570 2556 typedef DigraphAdaptorExtender<OrienterBase<GR, DM> > Parent;2557 2571 typedef typename Parent::Arc Arc; 2572 2558 2573 protected: 2559 2574 Orienter() { } 2575 2560 2576 public: 2561 2577 … … 2867 2883 template <typename DGR> 2868 2884 class SplitNodesBase { 2885 typedef DigraphAdaptorBase<const DGR> Parent; 2886 2869 2887 public: 2870 2888 2871 2889 typedef DGR Digraph; 2872 typedef DigraphAdaptorBase<const DGR> Parent;2873 2890 typedef SplitNodesBase Adaptor; 2874 2891 … … 3229 3246 template <typename V> 3230 3247 class NodeMap 3231 : public SubMapExtender<SplitNodesBase<DGR>, NodeMapBase<V> > 3232 { 3248 : public SubMapExtender<SplitNodesBase<DGR>, NodeMapBase<V> > { 3249 typedef SubMapExtender<SplitNodesBase<DGR>, NodeMapBase<V> > Parent; 3250 3233 3251 public: 3234 3252 typedef V Value; 3235 typedef SubMapExtender<SplitNodesBase<DGR>, NodeMapBase<Value> > Parent;3236 3253 3237 3254 NodeMap(const SplitNodesBase<DGR>& adaptor) … … 3255 3272 template <typename V> 3256 3273 class ArcMap 3257 : public SubMapExtender<SplitNodesBase<DGR>, ArcMapBase<V> > 3258 { 3274 : public SubMapExtender<SplitNodesBase<DGR>, ArcMapBase<V> > { 3275 typedef SubMapExtender<SplitNodesBase<DGR>, ArcMapBase<V> > Parent; 3276 3259 3277 public: 3260 3278 typedef V Value; 3261 typedef SubMapExtender<SplitNodesBase<DGR>, ArcMapBase<Value> > Parent;3262 3279 3263 3280 ArcMap(const SplitNodesBase<DGR>& adaptor) … … 3325 3342 : public DigraphAdaptorExtender<SplitNodesBase<const DGR> > { 3326 3343 #endif 3344 typedef DigraphAdaptorExtender<SplitNodesBase<const DGR> > Parent; 3345 3327 3346 public: 3328 3347 typedef DGR Digraph; 3329 typedef DigraphAdaptorExtender<SplitNodesBase<const DGR> > Parent;3330 3348 3331 3349 typedef typename DGR::Node DigraphNode; -
lemon/bits/array_map.h
r503 r617 48 48 public: 49 49 // The graph type. 50 typedef _Graph Graph ;50 typedef _Graph GraphType; 51 51 // The item type. 52 52 typedef _Item Item; … … 64 64 typedef _Value& Reference; 65 65 66 // The map type. 67 typedef ArrayMap Map; 68 66 69 // The notifier type. 67 70 typedef typename ItemSetTraits<_Graph, _Item>::ItemNotifier Notifier; 68 71 72 private: 73 69 74 // The MapBase of the Map which imlements the core regisitry function. 70 75 typedef typename Notifier::ObserverBase Parent; 71 76 72 private:73 77 typedef std::allocator<Value> Allocator; 74 78 … … 78 82 // 79 83 // Graph initialized map constructor. 80 explicit ArrayMap(const Graph & graph) {84 explicit ArrayMap(const GraphType& graph) { 81 85 Parent::attach(graph.notifier(Item())); 82 86 allocate_memory(); … … 92 96 // 93 97 // It constructs a map and initialize all of the the map. 94 ArrayMap(const Graph & graph, const Value& value) {98 ArrayMap(const GraphType& graph, const Value& value) { 95 99 Parent::attach(graph.notifier(Item())); 96 100 allocate_memory(); -
lemon/bits/base_extender.h
r440 r617 39 39 template <typename Base> 40 40 class UndirDigraphExtender : public Base { 41 typedef Base Parent; 41 42 42 43 public: 43 44 44 typedef Base Parent;45 45 typedef typename Parent::Arc Edge; 46 46 typedef typename Parent::Node Node; … … 281 281 template <typename Base> 282 282 class BidirBpGraphExtender : public Base { 283 typedef Base Parent; 284 283 285 public: 284 typedef Base Parent;285 286 typedef BidirBpGraphExtender Digraph; 286 287 -
lemon/bits/default_map.h
r535 r617 154 154 class DefaultMap 155 155 : public DefaultMapSelector<_Graph, _Item, _Value>::Map { 156 typedef typename DefaultMapSelector<_Graph, _Item, _Value>::Map Parent; 157 156 158 public: 157 typedef typename DefaultMapSelector<_Graph, _Item, _Value>::Map Parent;158 159 typedef DefaultMap<_Graph, _Item, _Value> Map; 159 160 typedef typename Parent::Graph Graph;160 161 typedef typename Parent::GraphType GraphType; 161 162 typedef typename Parent::Value Value; 162 163 163 explicit DefaultMap(const Graph & graph) : Parent(graph) {}164 DefaultMap(const Graph & graph, const Value& value)164 explicit DefaultMap(const GraphType& graph) : Parent(graph) {} 165 DefaultMap(const GraphType& graph, const Value& value) 165 166 : Parent(graph, value) {} 166 167 -
lemon/bits/edge_set_extender.h
r559 r617 35 35 template <typename Base> 36 36 class ArcSetExtender : public Base { 37 typedef Base Parent; 38 37 39 public: 38 40 39 typedef Base Parent;40 41 typedef ArcSetExtender Digraph; 41 42 … … 219 220 class ArcMap 220 221 : public MapExtender<DefaultMap<Digraph, Arc, _Value> > { 221 public:222 typedef ArcSetExtender Digraph;223 222 typedef MapExtender<DefaultMap<Digraph, Arc, _Value> > Parent; 224 223 224 public: 225 225 explicit ArcMap(const Digraph& _g) 226 226 : Parent(_g) {} … … 275 275 template <typename Base> 276 276 class EdgeSetExtender : public Base { 277 typedef Base Parent; 277 278 278 279 public: 279 280 280 typedef Base Parent; 281 typedef EdgeSetExtender Digraph; 281 typedef EdgeSetExtender Graph; 282 282 283 283 typedef typename Parent::Node Node; 284 284 typedef typename Parent::Arc Arc; 285 285 typedef typename Parent::Edge Edge; 286 287 286 288 287 int maxId(Node) const { … … 351 350 352 351 class NodeIt : public Node { 353 const Digraph* digraph;352 const Graph* graph; 354 353 public: 355 354 … … 358 357 NodeIt(Invalid i) : Node(i) { } 359 358 360 explicit NodeIt(const Digraph& _graph) : digraph(&_graph) {359 explicit NodeIt(const Graph& _graph) : graph(&_graph) { 361 360 _graph.first(static_cast<Node&>(*this)); 362 361 } 363 362 364 NodeIt(const Digraph& _graph, const Node& node)365 : Node(node), digraph(&_graph) {}363 NodeIt(const Graph& _graph, const Node& node) 364 : Node(node), graph(&_graph) {} 366 365 367 366 NodeIt& operator++() { 368 digraph->next(*this);367 graph->next(*this); 369 368 return *this; 370 369 } … … 374 373 375 374 class ArcIt : public Arc { 376 const Digraph* digraph;375 const Graph* graph; 377 376 public: 378 377 … … 381 380 ArcIt(Invalid i) : Arc(i) { } 382 381 383 explicit ArcIt(const Digraph& _graph) : digraph(&_graph) {382 explicit ArcIt(const Graph& _graph) : graph(&_graph) { 384 383 _graph.first(static_cast<Arc&>(*this)); 385 384 } 386 385 387 ArcIt(const Digraph& _graph, const Arc& e) :388 Arc(e), digraph(&_graph) { }386 ArcIt(const Graph& _graph, const Arc& e) : 387 Arc(e), graph(&_graph) { } 389 388 390 389 ArcIt& operator++() { 391 digraph->next(*this);390 graph->next(*this); 392 391 return *this; 393 392 } … … 397 396 398 397 class OutArcIt : public Arc { 399 const Digraph* digraph;398 const Graph* graph; 400 399 public: 401 400 … … 404 403 OutArcIt(Invalid i) : Arc(i) { } 405 404 406 OutArcIt(const Digraph& _graph, const Node& node)407 : digraph(&_graph) {405 OutArcIt(const Graph& _graph, const Node& node) 406 : graph(&_graph) { 408 407 _graph.firstOut(*this, node); 409 408 } 410 409 411 OutArcIt(const Digraph& _graph, const Arc& arc)412 : Arc(arc), digraph(&_graph) {}410 OutArcIt(const Graph& _graph, const Arc& arc) 411 : Arc(arc), graph(&_graph) {} 413 412 414 413 OutArcIt& operator++() { 415 digraph->nextOut(*this);414 graph->nextOut(*this); 416 415 return *this; 417 416 } … … 421 420 422 421 class InArcIt : public Arc { 423 const Digraph* digraph;422 const Graph* graph; 424 423 public: 425 424 … … 428 427 InArcIt(Invalid i) : Arc(i) { } 429 428 430 InArcIt(const Digraph& _graph, const Node& node)431 : digraph(&_graph) {429 InArcIt(const Graph& _graph, const Node& node) 430 : graph(&_graph) { 432 431 _graph.firstIn(*this, node); 433 432 } 434 433 435 InArcIt(const Digraph& _graph, const Arc& arc) :436 Arc(arc), digraph(&_graph) {}434 InArcIt(const Graph& _graph, const Arc& arc) : 435 Arc(arc), graph(&_graph) {} 437 436 438 437 InArcIt& operator++() { 439 digraph->nextIn(*this);438 graph->nextIn(*this); 440 439 return *this; 441 440 } … … 445 444 446 445 class EdgeIt : public Parent::Edge { 447 const Digraph* digraph;446 const Graph* graph; 448 447 public: 449 448 … … 452 451 EdgeIt(Invalid i) : Edge(i) { } 453 452 454 explicit EdgeIt(const Digraph& _graph) : digraph(&_graph) {453 explicit EdgeIt(const Graph& _graph) : graph(&_graph) { 455 454 _graph.first(static_cast<Edge&>(*this)); 456 455 } 457 456 458 EdgeIt(const Digraph& _graph, const Edge& e) :459 Edge(e), digraph(&_graph) { }457 EdgeIt(const Graph& _graph, const Edge& e) : 458 Edge(e), graph(&_graph) { } 460 459 461 460 EdgeIt& operator++() { 462 digraph->next(*this);461 graph->next(*this); 463 462 return *this; 464 463 } … … 468 467 class IncEdgeIt : public Parent::Edge { 469 468 friend class EdgeSetExtender; 470 const Digraph* digraph;469 const Graph* graph; 471 470 bool direction; 472 471 public: … … 476 475 IncEdgeIt(Invalid i) : Edge(i), direction(false) { } 477 476 478 IncEdgeIt(const Digraph& _graph, const Node &n) : digraph(&_graph) {477 IncEdgeIt(const Graph& _graph, const Node &n) : graph(&_graph) { 479 478 _graph.firstInc(*this, direction, n); 480 479 } 481 480 482 IncEdgeIt(const Digraph& _graph, const Edge &ue, const Node &n)483 : digraph(&_graph), Edge(ue) {481 IncEdgeIt(const Graph& _graph, const Edge &ue, const Node &n) 482 : graph(&_graph), Edge(ue) { 484 483 direction = (_graph.source(ue) == n); 485 484 } 486 485 487 486 IncEdgeIt& operator++() { 488 digraph->nextInc(*this, direction);487 graph->nextInc(*this, direction); 489 488 return *this; 490 489 } … … 535 534 template <typename _Value> 536 535 class ArcMap 537 : public MapExtender<DefaultMap<Digraph, Arc, _Value> > { 538 public: 539 typedef EdgeSetExtender Digraph; 540 typedef MapExtender<DefaultMap<Digraph, Arc, _Value> > Parent; 541 542 ArcMap(const Digraph& _g) 536 : public MapExtender<DefaultMap<Graph, Arc, _Value> > { 537 typedef MapExtender<DefaultMap<Graph, Arc, _Value> > Parent; 538 539 public: 540 ArcMap(const Graph& _g) 543 541 : Parent(_g) {} 544 ArcMap(const Digraph& _g, const _Value& _v)542 ArcMap(const Graph& _g, const _Value& _v) 545 543 : Parent(_g, _v) {} 546 544 … … 560 558 template <typename _Value> 561 559 class EdgeMap 562 : public MapExtender<DefaultMap<Digraph, Edge, _Value> > { 563 public: 564 typedef EdgeSetExtender Digraph; 565 typedef MapExtender<DefaultMap<Digraph, Edge, _Value> > Parent; 566 567 EdgeMap(const Digraph& _g) 560 : public MapExtender<DefaultMap<Graph, Edge, _Value> > { 561 typedef MapExtender<DefaultMap<Graph, Edge, _Value> > Parent; 562 563 public: 564 EdgeMap(const Graph& _g) 568 565 : Parent(_g) {} 569 566 570 EdgeMap(const Digraph& _g, const _Value& _v)567 EdgeMap(const Graph& _g, const _Value& _v) 571 568 : Parent(_g, _v) {} 572 569 -
lemon/bits/graph_adaptor_extender.h
r580 r617 27 27 template <typename _Digraph> 28 28 class DigraphAdaptorExtender : public _Digraph { 29 typedef _Digraph Parent; 30 29 31 public: 30 32 31 typedef _Digraph Parent;32 33 typedef _Digraph Digraph; 33 34 typedef DigraphAdaptorExtender Adaptor; … … 174 175 template <typename _Graph> 175 176 class GraphAdaptorExtender : public _Graph { 177 typedef _Graph Parent; 178 176 179 public: 177 180 178 typedef _Graph Parent;179 181 typedef _Graph Graph; 180 182 typedef GraphAdaptorExtender Adaptor; -
lemon/bits/graph_extender.h
r440 r617 38 38 template <typename Base> 39 39 class DigraphExtender : public Base { 40 typedef Base Parent; 41 40 42 public: 41 43 42 typedef Base Parent;43 44 typedef DigraphExtender Digraph; 44 45 … … 219 220 class NodeMap 220 221 : public MapExtender<DefaultMap<Digraph, Node, _Value> > { 221 public:222 typedef DigraphExtender Digraph;223 222 typedef MapExtender<DefaultMap<Digraph, Node, _Value> > Parent; 224 223 224 public: 225 225 explicit NodeMap(const Digraph& digraph) 226 226 : Parent(digraph) {} … … 244 244 class ArcMap 245 245 : public MapExtender<DefaultMap<Digraph, Arc, _Value> > { 246 public:247 typedef DigraphExtender Digraph;248 246 typedef MapExtender<DefaultMap<Digraph, Arc, _Value> > Parent; 249 247 248 public: 250 249 explicit ArcMap(const Digraph& digraph) 251 250 : Parent(digraph) {} … … 331 330 template <typename Base> 332 331 class GraphExtender : public Base { 332 typedef Base Parent; 333 333 334 public: 334 335 335 typedef Base Parent;336 336 typedef GraphExtender Graph; 337 337 … … 602 602 class NodeMap 603 603 : public MapExtender<DefaultMap<Graph, Node, _Value> > { 604 public:605 typedef GraphExtender Graph;606 604 typedef MapExtender<DefaultMap<Graph, Node, _Value> > Parent; 607 605 606 public: 608 607 NodeMap(const Graph& graph) 609 608 : Parent(graph) {} … … 627 626 class ArcMap 628 627 : public MapExtender<DefaultMap<Graph, Arc, _Value> > { 629 public:630 typedef GraphExtender Graph;631 628 typedef MapExtender<DefaultMap<Graph, Arc, _Value> > Parent; 632 629 630 public: 633 631 ArcMap(const Graph& graph) 634 632 : Parent(graph) {} … … 652 650 class EdgeMap 653 651 : public MapExtender<DefaultMap<Graph, Edge, _Value> > { 654 public:655 typedef GraphExtender Graph;656 652 typedef MapExtender<DefaultMap<Graph, Edge, _Value> > Parent; 657 653 654 public: 658 655 EdgeMap(const Graph& graph) 659 656 : Parent(graph) {} -
lemon/bits/map_extender.h
r580 r617 37 37 template <typename _Map> 38 38 class MapExtender : public _Map { 39 public:40 41 39 typedef _Map Parent; 40 typedef typename Parent::GraphType GraphType; 41 42 public: 43 42 44 typedef MapExtender Map; 43 44 45 typedef typename Parent::Graph Graph;46 45 typedef typename Parent::Key Item; 47 46 … … 59 58 public: 60 59 61 MapExtender(const Graph & graph)60 MapExtender(const GraphType& graph) 62 61 : Parent(graph) {} 63 62 64 MapExtender(const Graph & graph, const Value& value)63 MapExtender(const GraphType& graph, const Value& value) 65 64 : Parent(graph, value) {} 66 65 … … 78 77 public: 79 78 class MapIt : public Item { 80 public: 81 82 typedef Item Parent; 79 typedef Item Parent; 80 81 public: 82 83 83 typedef typename Map::Value Value; 84 84 … … 117 117 118 118 class ConstMapIt : public Item { 119 public:120 121 typedef Item Parent;119 typedef Item Parent; 120 121 public: 122 122 123 123 typedef typename Map::Value Value; … … 148 148 149 149 class ItemIt : public Item { 150 public:151 152 typedef Item Parent;150 typedef Item Parent; 151 152 public: 153 153 154 154 ItemIt() {} … … 179 179 template <typename _Graph, typename _Map> 180 180 class SubMapExtender : public _Map { 181 public:182 183 181 typedef _Map Parent; 182 typedef _Graph GraphType; 183 184 public: 185 184 186 typedef SubMapExtender Map; 185 186 typedef _Graph Graph;187 188 187 typedef typename Parent::Key Item; 189 188 … … 201 200 public: 202 201 203 SubMapExtender(const Graph & _graph)202 SubMapExtender(const GraphType& _graph) 204 203 : Parent(_graph), graph(_graph) {} 205 204 206 SubMapExtender(const Graph & _graph, const Value& _value)205 SubMapExtender(const GraphType& _graph, const Value& _value) 207 206 : Parent(_graph, _value), graph(_graph) {} 208 207 … … 224 223 public: 225 224 class MapIt : public Item { 226 public:227 228 typedef Item Parent;225 typedef Item Parent; 226 227 public: 229 228 typedef typename Map::Value Value; 230 229 … … 263 262 264 263 class ConstMapIt : public Item { 265 public:266 267 typedef Item Parent;264 typedef Item Parent; 265 266 public: 268 267 269 268 typedef typename Map::Value Value; … … 294 293 295 294 class ItemIt : public Item { 296 public:297 298 typedef Item Parent;295 typedef Item Parent; 296 297 public: 299 298 300 299 ItemIt() {} … … 321 320 private: 322 321 323 const Graph & graph;322 const GraphType& graph; 324 323 325 324 }; -
lemon/bits/vector_map.h
r503 r617 57 57 58 58 // The graph type of the map. 59 typedef _Graph Graph ;59 typedef _Graph GraphType; 60 60 // The item type of the map. 61 61 typedef _Item Item; … … 73 73 // The map type. 74 74 typedef VectorMap Map; 75 // The base class of the map.76 typedef typename Notifier::ObserverBase Parent;77 75 78 76 // The reference type of the map; … … 81 79 typedef typename Container::const_reference ConstReference; 82 80 81 private: 82 83 // The base class of the map. 84 typedef typename Notifier::ObserverBase Parent; 85 86 public: 83 87 84 88 // \brief Constructor to attach the new map into the notifier. … … 86 90 // It constructs a map and attachs it into the notifier. 87 91 // It adds all the items of the graph to the map. 88 VectorMap(const Graph & graph) {92 VectorMap(const GraphType& graph) { 89 93 Parent::attach(graph.notifier(Item())); 90 94 container.resize(Parent::notifier()->maxId() + 1); … … 95 99 // It constructs a map uses a given value to initialize the map. 96 100 // It adds all the items of the graph to the map. 97 VectorMap(const Graph & graph, const Value& value) {101 VectorMap(const GraphType& graph, const Value& value) { 98 102 Parent::attach(graph.notifier(Item())); 99 103 container.resize(Parent::notifier()->maxId() + 1, value); -
lemon/concepts/graph_components.h
r584 r617 181 181 class BaseGraphComponent : public BaseDigraphComponent { 182 182 public: 183 184 typedef BaseGraphComponent Graph; 185 183 186 typedef BaseDigraphComponent::Node Node; 184 187 typedef BaseDigraphComponent::Arc Arc; … … 190 193 /// represented by two opposite directed arcs. 191 194 class Edge : public GraphItem<'e'> { 195 typedef GraphItem<'e'> Parent; 196 192 197 public: 193 typedef GraphItem<'e'> Parent;194 195 198 /// \brief Default constructor. 196 199 /// … … 992 995 template <typename GR, typename K, typename V> 993 996 class GraphMap : public ReferenceMap<K, V, V&, const V&> { 994 public: 995 996 typedef ReadWriteMap<K, V> Parent; 997 998 /// The graph type of the map. 999 typedef GR Graph; 997 typedef ReferenceMap<K, V, V&, const V&> Parent; 998 999 public: 1000 1000 1001 /// The key type of the map. 1001 1002 typedef K Key; … … 1013 1014 /// 1014 1015 /// Construct a new map for the graph. 1015 explicit GraphMap(const G raph&) {}1016 explicit GraphMap(const GR&) {} 1016 1017 /// \brief Construct a new map with default value. 1017 1018 /// 1018 1019 /// Construct a new map for the graph and initalize the values. 1019 GraphMap(const G raph&, const Value&) {}1020 GraphMap(const GR&, const Value&) {} 1020 1021 1021 1022 private: … … 1058 1059 1059 1060 const _Map &m; 1060 const G raph&g;1061 const GR &g; 1061 1062 const typename GraphMap::Value &t; 1062 1063 }; … … 1086 1087 template <typename V> 1087 1088 class NodeMap : public GraphMap<MappableDigraphComponent, Node, V> { 1089 typedef GraphMap<MappableDigraphComponent, Node, V> Parent; 1090 1088 1091 public: 1089 typedef GraphMap<MappableDigraphComponent, Node, V> Parent;1090 1091 1092 /// \brief Construct a new map. 1092 1093 /// … … 1124 1125 template <typename V> 1125 1126 class ArcMap : public GraphMap<MappableDigraphComponent, Arc, V> { 1127 typedef GraphMap<MappableDigraphComponent, Arc, V> Parent; 1128 1126 1129 public: 1127 typedef GraphMap<MappableDigraphComponent, Arc, V> Parent;1128 1129 1130 /// \brief Construct a new map. 1130 1131 /// … … 1222 1223 template <typename V> 1223 1224 class EdgeMap : public GraphMap<MappableGraphComponent, Edge, V> { 1225 typedef GraphMap<MappableGraphComponent, Edge, V> Parent; 1226 1224 1227 public: 1225 typedef GraphMap<MappableGraphComponent, Edge, V> Parent;1226 1227 1228 /// \brief Construct a new map. 1228 1229 /// -
lemon/core.h
r581 r617 1037 1037 template <typename GR> 1038 1038 class ConArcIt : public GR::Arc { 1039 typedef typename GR::Arc Parent; 1040 1039 1041 public: 1040 1042 1041 typedef GR Graph; 1042 typedef typename Graph::Arc Parent; 1043 1044 typedef typename Graph::Arc Arc; 1045 typedef typename Graph::Node Node; 1043 typedef typename GR::Arc Arc; 1044 typedef typename GR::Node Node; 1046 1045 1047 1046 /// \brief Constructor. … … 1049 1048 /// Construct a new ConArcIt iterating on the arcs that 1050 1049 /// connects nodes \c u and \c v. 1051 ConArcIt(const G raph& g, Node u, Node v) : _graph(g) {1050 ConArcIt(const GR& g, Node u, Node v) : _graph(g) { 1052 1051 Parent::operator=(findArc(_graph, u, v)); 1053 1052 } … … 1056 1055 /// 1057 1056 /// Construct a new ConArcIt that continues the iterating from arc \c a. 1058 ConArcIt(const G raph& g, Arc a) : Parent(a), _graph(g) {}1057 ConArcIt(const GR& g, Arc a) : Parent(a), _graph(g) {} 1059 1058 1060 1059 /// \brief Increment operator. … … 1067 1066 } 1068 1067 private: 1069 const G raph& _graph;1068 const GR& _graph; 1070 1069 }; 1071 1070 … … 1160 1159 template <typename GR> 1161 1160 class ConEdgeIt : public GR::Edge { 1161 typedef typename GR::Edge Parent; 1162 1162 1163 public: 1163 1164 1164 typedef GR Graph; 1165 typedef typename Graph::Edge Parent; 1166 1167 typedef typename Graph::Edge Edge; 1168 typedef typename Graph::Node Node; 1165 typedef typename GR::Edge Edge; 1166 typedef typename GR::Node Node; 1169 1167 1170 1168 /// \brief Constructor. … … 1172 1170 /// Construct a new ConEdgeIt iterating on the edges that 1173 1171 /// connects nodes \c u and \c v. 1174 ConEdgeIt(const G raph& g, Node u, Node v) : _graph(g), _u(u), _v(v) {1172 ConEdgeIt(const GR& g, Node u, Node v) : _graph(g), _u(u), _v(v) { 1175 1173 Parent::operator=(findEdge(_graph, _u, _v)); 1176 1174 } … … 1179 1177 /// 1180 1178 /// Construct a new ConEdgeIt that continues iterating from edge \c e. 1181 ConEdgeIt(const G raph& g, Edge e) : Parent(e), _graph(g) {}1179 ConEdgeIt(const GR& g, Edge e) : Parent(e), _graph(g) {} 1182 1180 1183 1181 /// \brief Increment operator. … … 1189 1187 } 1190 1188 private: 1191 const G raph& _graph;1189 const GR& _graph; 1192 1190 Node _u, _v; 1193 1191 }; … … 1220 1218 : protected ItemSetTraits<GR, typename GR::Arc>::ItemNotifier::ObserverBase 1221 1219 { 1222 public:1223 1220 typedef typename ItemSetTraits<GR, typename GR::Arc> 1224 1221 ::ItemNotifier::ObserverBase Parent; 1225 1222 1226 1223 TEMPLATE_DIGRAPH_TYPEDEFS(GR); 1224 1225 public: 1226 1227 /// The Digraph type 1227 1228 typedef GR Digraph; 1228 1229 … … 1230 1231 1231 1232 class AutoNodeMap : public ItemSetTraits<GR, Node>::template Map<Arc>::Type { 1233 typedef typename ItemSetTraits<GR, Node>::template Map<Arc>::Type Parent; 1234 1232 1235 public: 1233 1234 typedef typename ItemSetTraits<GR, Node>::template Map<Arc>::Type Parent;1235 1236 1236 1237 AutoNodeMap(const GR& digraph) : Parent(digraph, INVALID) {} … … 1257 1258 } 1258 1259 }; 1259 1260 const Digraph &_g;1261 AutoNodeMap _head;1262 typename Digraph::template ArcMap<Arc> _parent;1263 typename Digraph::template ArcMap<Arc> _left;1264 typename Digraph::template ArcMap<Arc> _right;1265 1260 1266 1261 class ArcLess { … … 1273 1268 } 1274 1269 }; 1270 1271 protected: 1272 1273 const Digraph &_g; 1274 AutoNodeMap _head; 1275 typename Digraph::template ArcMap<Arc> _parent; 1276 typename Digraph::template ArcMap<Arc> _left; 1277 typename Digraph::template ArcMap<Arc> _right; 1275 1278 1276 1279 public: … … 1631 1634 class ArcLookUp 1632 1635 { 1636 TEMPLATE_DIGRAPH_TYPEDEFS(GR); 1637 1633 1638 public: 1634 TEMPLATE_DIGRAPH_TYPEDEFS(GR); 1639 1640 /// The Digraph type 1635 1641 typedef GR Digraph; 1636 1642 … … 1747 1753 1748 1754 TEMPLATE_DIGRAPH_TYPEDEFS(GR); 1749 typedef GR Digraph; 1750 1751 typename Digraph::template ArcMap<Arc> _next; 1755 1756 typename GR::template ArcMap<Arc> _next; 1752 1757 1753 1758 Arc refreshNext(Arc head,Arc next=INVALID) … … 1768 1773 1769 1774 public: 1775 1776 /// The Digraph type 1777 typedef GR Digraph; 1778 1770 1779 ///Constructor 1771 1780 -
lemon/edge_set.h
r559 r617 34 34 public: 35 35 36 typedef GR Graph;37 36 typedef typename GR::Node Node; 38 37 typedef typename GR::NodeIt NodeIt; … … 209 208 template <typename V> 210 209 class NodeMap : public GR::template NodeMap<V> { 210 typedef typename GR::template NodeMap<V> Parent; 211 211 212 public: 212 213 typedef typename GR::template NodeMap<V> Parent;214 213 215 214 explicit NodeMap(const ListArcSetBase<GR>& arcset) … … 260 259 template <typename GR> 261 260 class ListArcSet : public ArcSetExtender<ListArcSetBase<GR> > { 262 263 public:264 265 261 typedef ArcSetExtender<ListArcSetBase<GR> > Parent; 262 263 public: 266 264 267 265 typedef typename Parent::Node Node; 268 266 typedef typename Parent::Arc Arc; 269 270 typedef GR Graph;271 272 267 273 268 typedef typename Parent::NodesImplBase NodesImplBase; … … 293 288 294 289 class NodesImpl : public NodesImplBase { 290 typedef NodesImplBase Parent; 291 295 292 public: 296 typedef NodesImplBase Parent;297 298 293 NodesImpl(const GR& graph, ListArcSet& arcset) 299 294 : Parent(graph), _arcset(arcset) {} … … 355 350 public: 356 351 357 typedef GR Graph;358 352 typedef typename GR::Node Node; 359 353 typedef typename GR::NodeIt NodeIt; … … 638 632 template <typename V> 639 633 class NodeMap : public GR::template NodeMap<V> { 634 typedef typename GR::template NodeMap<V> Parent; 635 640 636 public: 641 642 typedef typename GR::template NodeMap<V> Parent;643 637 644 638 explicit NodeMap(const ListEdgeSetBase<GR>& arcset) … … 689 683 template <typename GR> 690 684 class ListEdgeSet : public EdgeSetExtender<ListEdgeSetBase<GR> > { 691 692 public:693 694 685 typedef EdgeSetExtender<ListEdgeSetBase<GR> > Parent; 686 687 public: 695 688 696 689 typedef typename Parent::Node Node; 697 690 typedef typename Parent::Arc Arc; 698 691 typedef typename Parent::Edge Edge; 699 700 typedef GR Graph;701 702 692 703 693 typedef typename Parent::NodesImplBase NodesImplBase; … … 718 708 719 709 class NodesImpl : public NodesImplBase { 710 typedef NodesImplBase Parent; 711 720 712 public: 721 typedef NodesImplBase Parent;722 723 713 NodesImpl(const GR& graph, ListEdgeSet& arcset) 724 714 : Parent(graph), _arcset(arcset) {} … … 780 770 public: 781 771 782 typedef GR Graph; 783 typedef typename Graph::Node Node; 784 typedef typename Graph::NodeIt NodeIt; 772 typedef typename GR::Node Node; 773 typedef typename GR::NodeIt NodeIt; 785 774 786 775 protected: … … 901 890 template <typename V> 902 891 class NodeMap : public GR::template NodeMap<V> { 892 typedef typename GR::template NodeMap<V> Parent; 893 903 894 public: 904 905 typedef typename GR::template NodeMap<V> Parent;906 895 907 896 explicit NodeMap(const SmartArcSetBase<GR>& arcset) … … 957 946 template <typename GR> 958 947 class SmartArcSet : public ArcSetExtender<SmartArcSetBase<GR> > { 959 960 public:961 962 948 typedef ArcSetExtender<SmartArcSetBase<GR> > Parent; 949 950 public: 963 951 964 952 typedef typename Parent::Node Node; 965 953 typedef typename Parent::Arc Arc; 966 967 typedef GR Graph;968 954 969 955 protected: … … 984 970 985 971 class NodesImpl : public NodesImplBase { 972 typedef NodesImplBase Parent; 973 986 974 public: 987 typedef NodesImplBase Parent;988 989 975 NodesImpl(const GR& graph, SmartArcSet& arcset) 990 976 : Parent(graph), _arcset(arcset) {} … … 1063 1049 public: 1064 1050 1065 typedef GR Graph;1066 1051 typedef typename GR::Node Node; 1067 1052 typedef typename GR::NodeIt NodeIt; … … 1250 1235 template <typename V> 1251 1236 class NodeMap : public GR::template NodeMap<V> { 1237 typedef typename GR::template NodeMap<V> Parent; 1238 1252 1239 public: 1253 1254 typedef typename GR::template NodeMap<V> Parent;1255 1240 1256 1241 explicit NodeMap(const SmartEdgeSetBase<GR>& arcset) … … 1305 1290 template <typename GR> 1306 1291 class SmartEdgeSet : public EdgeSetExtender<SmartEdgeSetBase<GR> > { 1307 1308 public:1309 1310 1292 typedef EdgeSetExtender<SmartEdgeSetBase<GR> > Parent; 1293 1294 public: 1311 1295 1312 1296 typedef typename Parent::Node Node; … … 1314 1298 typedef typename Parent::Edge Edge; 1315 1299 1316 typedef GR Graph;1317 1318 1300 protected: 1319 1301 … … 1332 1314 1333 1315 class NodesImpl : public NodesImplBase { 1316 typedef NodesImplBase Parent; 1317 1334 1318 public: 1335 typedef NodesImplBase Parent;1336 1337 1319 NodesImpl(const GR& graph, SmartEdgeSet& arcset) 1338 1320 : Parent(graph), _arcset(arcset) {} -
lemon/full_graph.h
r582 r617 32 32 public: 33 33 34 typedef FullDigraphBase Graph;34 typedef FullDigraphBase Digraph; 35 35 36 36 class Node; … … 170 170 /// \sa FullGraph 171 171 class FullDigraph : public ExtendedFullDigraphBase { 172 typedef ExtendedFullDigraphBase Parent; 173 172 174 public: 173 174 typedef ExtendedFullDigraphBase Parent;175 175 176 176 /// \brief Constructor … … 227 227 228 228 class FullGraphBase { 229 int _node_num;230 int _edge_num;231 229 public: 232 230 … … 238 236 239 237 protected: 238 239 int _node_num; 240 int _edge_num; 240 241 241 242 FullGraphBase() {} … … 538 539 /// \sa FullDigraph 539 540 class FullGraph : public ExtendedFullGraphBase { 541 typedef ExtendedFullGraphBase Parent; 542 540 543 public: 541 542 typedef ExtendedFullGraphBase Parent;543 544 544 545 /// \brief Constructor -
lemon/graph_to_eps.h
r584 r617 70 70 { 71 71 typedef GR Graph; 72 typedef GR Digraph; 72 73 typedef typename Graph::Node Node; 73 74 typedef typename Graph::NodeIt NodeIt; … … 242 243 243 244 typedef typename T::Graph Graph; 245 typedef typename T::Digraph Digraph; 244 246 typedef typename Graph::Node Node; 245 247 typedef typename Graph::NodeIt NodeIt; -
lemon/grid_graph.h
r582 r617 500 500 /// "Graph concept". 501 501 class GridGraph : public ExtendedGridGraphBase { 502 typedef ExtendedGridGraphBase Parent; 503 502 504 public: 503 504 typedef ExtendedGridGraphBase Parent;505 505 506 506 /// \brief Map to get the indices of the nodes as dim2::Point<int>. -
lemon/hypercube_graph.h
r582 r617 295 295 /// "Graph concept". 296 296 class HypercubeGraph : public ExtendedHypercubeGraphBase { 297 typedef ExtendedHypercubeGraphBase Parent; 298 297 299 public: 298 299 typedef ExtendedHypercubeGraphBase Parent;300 300 301 301 /// \brief Constructs a hypercube graph with \c dim dimensions. -
lemon/list_graph.h
r582 r617 324 324 325 325 class ListDigraph : public ExtendedListDigraphBase { 326 typedef ExtendedListDigraphBase Parent; 327 326 328 private: 327 329 ///ListDigraph is \e not copy constructible. Use copyDigraph() instead. … … 337 339 void operator=(const ListDigraph &) {} 338 340 public: 339 340 typedef ExtendedListDigraphBase Parent;341 341 342 342 /// Constructor … … 794 794 public: 795 795 796 typedef ListGraphBase Digraph;796 typedef ListGraphBase Graph; 797 797 798 798 class Node; … … 1177 1177 1178 1178 class ListGraph : public ExtendedListGraphBase { 1179 typedef ExtendedListGraphBase Parent; 1180 1179 1181 private: 1180 1182 ///ListGraph is \e not copy constructible. Use copyGraph() instead. … … 1195 1197 /// 1196 1198 ListGraph() {} 1197 1198 typedef ExtendedListGraphBase Parent;1199 1199 1200 1200 typedef Parent::OutArcIt IncEdgeIt; -
lemon/maps.h
r584 r617 1839 1839 /// The graph type of IdMap. 1840 1840 typedef GR Graph; 1841 typedef GR Digraph; 1841 1842 /// The key type of IdMap (\c Node, \c Arc or \c Edge). 1842 1843 typedef K Item; … … 1930 1931 /// The graph type of CrossRefMap. 1931 1932 typedef GR Graph; 1933 typedef GR Digraph; 1932 1934 /// The key type of CrossRefMap (\c Node, \c Arc or \c Edge). 1933 1935 typedef K Item; … … 2133 2135 /// The graph type of RangeIdMap. 2134 2136 typedef GR Graph; 2137 typedef GR Digraph; 2135 2138 /// The key type of RangeIdMap (\c Node, \c Arc or \c Edge). 2136 2139 typedef K Item; … … 2495 2498 public: 2496 2499 2497 /// The digraph type 2500 /// The graph type of InDegMap 2501 typedef GR Graph; 2498 2502 typedef GR Digraph; 2499 2503 /// The key type … … 2624 2628 public: 2625 2629 2626 /// The digraph type 2630 /// The graph type of OutDegMap 2631 typedef GR Graph; 2627 2632 typedef GR Digraph; 2628 2633 /// The key type -
lemon/smart_graph.h
r582 r617 56 56 public: 57 57 58 typedef SmartDigraphBase Graph;58 typedef SmartDigraphBase Digraph; 59 59 60 60 class Node; … … 196 196 ///\sa concepts::Digraph. 197 197 class SmartDigraph : public ExtendedSmartDigraphBase { 198 public:199 200 198 typedef ExtendedSmartDigraphBase Parent; 201 199 … … 421 419 public: 422 420 423 typedef SmartGraphBase Digraph;421 typedef SmartGraphBase Graph; 424 422 425 423 class Node; … … 632 630 /// \sa concepts::Graph. 633 631 class SmartGraph : public ExtendedSmartGraphBase { 632 typedef ExtendedSmartGraphBase Parent; 633 634 634 private: 635 635 … … 648 648 649 649 public: 650 651 typedef ExtendedSmartGraphBase Parent;652 650 653 651 /// Constructor
Note: See TracChangeset
for help on using the changeset viewer.