0
5
0
... | ... |
@@ -48,4 +48,6 @@ |
48 | 48 |
typedef typename Parent::Key Key; |
49 | 49 |
typedef typename Parent::Value Value; |
50 |
typedef typename Parent::Reference Reference; |
|
51 |
typedef typename Parent::ConstReference ConstReference; |
|
50 | 52 |
|
51 | 53 |
class MapIt; |
... | ... |
@@ -188,4 +190,6 @@ |
188 | 190 |
typedef typename Parent::Key Key; |
189 | 191 |
typedef typename Parent::Value Value; |
192 |
typedef typename Parent::Reference Reference; |
|
193 |
typedef typename Parent::ConstReference ConstReference; |
|
190 | 194 |
|
191 | 195 |
class MapIt; |
... | ... |
@@ -422,10 +422,9 @@ |
422 | 422 |
Node oppositeNode(const Node&, const Arc&) const { return INVALID; } |
423 | 423 |
|
424 |
/// \brief |
|
424 |
/// \brief Reference map of the nodes to type \c T. |
|
425 | 425 |
/// |
426 |
/// ReadWrite map of the nodes to type \c T. |
|
427 |
/// \sa Reference |
|
426 |
/// Reference map of the nodes to type \c T. |
|
428 | 427 |
template<class T> |
429 |
class NodeMap : public |
|
428 |
class NodeMap : public ReferenceMap<Node, T, T&, const T&> { |
|
430 | 429 |
public: |
431 | 430 |
|
... | ... |
@@ -437,5 +436,6 @@ |
437 | 436 |
private: |
438 | 437 |
///Copy constructor |
439 |
NodeMap(const NodeMap& nm) : |
|
438 |
NodeMap(const NodeMap& nm) : |
|
439 |
ReferenceMap<Node, T, T&, const T&>(nm) { } |
|
440 | 440 |
///Assignment operator |
441 | 441 |
template <typename CMap> |
... | ... |
@@ -446,10 +446,9 @@ |
446 | 446 |
}; |
447 | 447 |
|
448 |
/// \brief |
|
448 |
/// \brief Reference map of the arcs to type \c T. |
|
449 | 449 |
/// |
450 | 450 |
/// Reference map of the arcs to type \c T. |
451 |
/// \sa Reference |
|
452 | 451 |
template<class T> |
453 |
class ArcMap : public |
|
452 |
class ArcMap : public ReferenceMap<Arc, T, T&, const T&> { |
|
454 | 453 |
public: |
455 | 454 |
|
... | ... |
@@ -460,5 +459,6 @@ |
460 | 459 |
private: |
461 | 460 |
///Copy constructor |
462 |
ArcMap(const ArcMap& em) : |
|
461 |
ArcMap(const ArcMap& em) : |
|
462 |
ReferenceMap<Arc, T, T&, const T&>(em) { } |
|
463 | 463 |
///Assignment operator |
464 | 464 |
template <typename CMap> |
... | ... |
@@ -472,4 +472,5 @@ |
472 | 472 |
struct Constraints { |
473 | 473 |
void constraints() { |
474 |
checkConcept<BaseDigraphComponent, _Digraph>(); |
|
474 | 475 |
checkConcept<IterableDigraphComponent<>, _Digraph>(); |
475 | 476 |
checkConcept<IDableDigraphComponent<>, _Digraph>(); |
... | ... |
@@ -498,10 +498,9 @@ |
498 | 498 |
}; |
499 | 499 |
|
500 |
/// \brief |
|
500 |
/// \brief Reference map of the nodes to type \c T. |
|
501 | 501 |
/// |
502 |
/// ReadWrite map of the nodes to type \c T. |
|
503 |
/// \sa Reference |
|
502 |
/// Reference map of the nodes to type \c T. |
|
504 | 503 |
template<class T> |
505 |
class NodeMap : public |
|
504 |
class NodeMap : public ReferenceMap<Node, T, T&, const T&> |
|
506 | 505 |
{ |
507 | 506 |
public: |
... | ... |
@@ -514,5 +513,6 @@ |
514 | 513 |
private: |
515 | 514 |
///Copy constructor |
516 |
NodeMap(const NodeMap& nm) : |
|
515 |
NodeMap(const NodeMap& nm) : |
|
516 |
ReferenceMap<Node, T, T&, const T&>(nm) { } |
|
517 | 517 |
///Assignment operator |
518 | 518 |
template <typename CMap> |
... | ... |
@@ -523,10 +523,9 @@ |
523 | 523 |
}; |
524 | 524 |
|
525 |
/// \brief |
|
525 |
/// \brief Reference map of the arcs to type \c T. |
|
526 | 526 |
/// |
527 |
/// Reference map of the directed arcs to type \c T. |
|
528 |
/// \sa Reference |
|
527 |
/// Reference map of the arcs to type \c T. |
|
529 | 528 |
template<class T> |
530 |
class ArcMap : public |
|
529 |
class ArcMap : public ReferenceMap<Arc, T, T&, const T&> |
|
531 | 530 |
{ |
532 | 531 |
public: |
... | ... |
@@ -538,5 +537,6 @@ |
538 | 537 |
private: |
539 | 538 |
///Copy constructor |
540 |
ArcMap(const ArcMap& em) : |
|
539 |
ArcMap(const ArcMap& em) : |
|
540 |
ReferenceMap<Arc, T, T&, const T&>(em) { } |
|
541 | 541 |
///Assignment operator |
542 | 542 |
template <typename CMap> |
... | ... |
@@ -547,10 +547,9 @@ |
547 | 547 |
}; |
548 | 548 |
|
549 |
/// |
|
549 |
/// Reference map of the edges to type \c T. |
|
550 | 550 |
|
551 |
/// Reference map of the arcs to type \c T. |
|
552 |
/// \sa Reference |
|
551 |
/// Reference map of the edges to type \c T. |
|
553 | 552 |
template<class T> |
554 |
class EdgeMap : public |
|
553 |
class EdgeMap : public ReferenceMap<Edge, T, T&, const T&> |
|
555 | 554 |
{ |
556 | 555 |
public: |
... | ... |
@@ -562,5 +561,6 @@ |
562 | 561 |
private: |
563 | 562 |
///Copy constructor |
564 |
EdgeMap(const EdgeMap& em) : |
|
563 |
EdgeMap(const EdgeMap& em) : |
|
564 |
ReferenceMap<Edge, T, T&, const T&>(em) {} |
|
565 | 565 |
///Assignment operator |
566 | 566 |
template <typename CMap> |
... | ... |
@@ -749,4 +749,5 @@ |
749 | 749 |
struct Constraints { |
750 | 750 |
void constraints() { |
751 |
checkConcept<BaseGraphComponent, _Graph>(); |
|
751 | 752 |
checkConcept<IterableGraphComponent<>, _Graph>(); |
752 | 753 |
checkConcept<IDableGraphComponent<>, _Graph>(); |
... | ... |
@@ -989,6 +989,7 @@ |
989 | 989 |
/// the \c NodeMap, \c ArcMap and \c EdgeMap subtypes of digraph and |
990 | 990 |
/// graph types, which can be used for associating data to graph items. |
991 |
/// The standard graph maps must conform to the ReferenceMap concept. |
|
991 | 992 |
template <typename GR, typename K, typename V> |
992 |
class GraphMap : public |
|
993 |
class GraphMap : public ReferenceMap<K, V, V&, const V&> { |
|
993 | 994 |
public: |
994 | 995 |
|
... | ... |
@@ -1001,4 +1002,11 @@ |
1001 | 1002 |
/// The value type of the map. |
1002 | 1003 |
typedef V Value; |
1004 |
/// The reference type of the map. |
|
1005 |
typedef Value& Reference; |
|
1006 |
/// The const reference type of the map. |
|
1007 |
typedef const Value& ConstReference; |
|
1008 |
|
|
1009 |
// The reference map tag. |
|
1010 |
typedef True ReferenceMapTag; |
|
1003 | 1011 |
|
1004 | 1012 |
/// \brief Construct a new map. |
... | ... |
@@ -1032,5 +1040,6 @@ |
1032 | 1040 |
struct Constraints { |
1033 | 1041 |
void constraints() { |
1034 |
checkConcept |
|
1042 |
checkConcept |
|
1043 |
<ReferenceMap<Key, Value, Value&, const Value&>, _Map>(); |
|
1035 | 1044 |
_Map m1(g); |
1036 | 1045 |
_Map m2(g,t); |
... | ... |
@@ -1074,4 +1083,5 @@ |
1074 | 1083 |
/// |
1075 | 1084 |
/// Standard graph map for the nodes. |
1085 |
/// It conforms to the ReferenceMap concept. |
|
1076 | 1086 |
template <typename V> |
1077 | 1087 |
class NodeMap : public GraphMap<MappableDigraphComponent, Node, V> { |
... | ... |
@@ -1111,4 +1121,5 @@ |
1111 | 1121 |
/// |
1112 | 1122 |
/// Standard graph map for the arcs. |
1123 |
/// It conforms to the ReferenceMap concept. |
|
1113 | 1124 |
template <typename V> |
1114 | 1125 |
class ArcMap : public GraphMap<MappableDigraphComponent, Arc, V> { |
... | ... |
@@ -1208,4 +1219,5 @@ |
1208 | 1219 |
/// |
1209 | 1220 |
/// Standard graph map for the edges. |
1221 |
/// It conforms to the ReferenceMap concept. |
|
1210 | 1222 |
template <typename V> |
1211 | 1223 |
class EdgeMap : public GraphMap<MappableGraphComponent, Edge, V> { |
0 comments (0 inline)