0
16
0
1
1
5
5
1
1
21
26
5
5
1
1
| ... | ... |
@@ -25,9 +25,9 @@ |
| 25 | 25 |
/// <tt>.eps</tt> files demonstrating the capability of \ref |
| 26 | 26 |
/// graphToEps(), and showing how to draw directed graphs, |
| 27 | 27 |
/// how to handle parallel egdes, how to change the properties (like |
| 28 | 28 |
/// color, shape, size, title etc.) of nodes and arcs individually |
| 29 |
/// using appropriate |
|
| 29 |
/// using appropriate graph maps. |
|
| 30 | 30 |
/// |
| 31 | 31 |
/// \include graph_to_eps_demo.cc |
| 32 | 32 |
|
| 33 | 33 |
#include<lemon/list_graph.h> |
| ... | ... |
@@ -77,9 +77,9 @@ |
| 77 | 77 |
1 3 12 |
| 78 | 78 |
2 3 18 |
| 79 | 79 |
\endcode |
| 80 | 80 |
|
| 81 |
The \c \@edges is just a synonym of \c \@arcs. The @arcs section can |
|
| 81 |
The \c \@edges is just a synonym of \c \@arcs. The \@arcs section can |
|
| 82 | 82 |
also store the edge set of an undirected graph. In such case there is |
| 83 | 83 |
a conventional method for store arc maps in the file, if two columns |
| 84 | 84 |
has the same caption with \c '+' and \c '-' prefix, then these columns |
| 85 | 85 |
can be regarded as the values of an arc map. |
| ... | ... |
@@ -78,10 +78,9 @@ |
| 78 | 78 |
/// a \e clear() function throws an exception then the remaining |
| 79 | 79 |
/// observeres will not be notified and the fulfilled additions will |
| 80 | 80 |
/// be rolled back by calling the \e erase() or \e clear() |
| 81 | 81 |
/// functions. Thence the \e erase() and \e clear() should not throw |
| 82 |
/// exception. Actullay, it can be throw only |
|
| 83 |
/// \ref AlterationObserver::ImmediateDetach ImmediateDetach |
|
| 82 |
/// exception. Actullay, it can be throw only \ref ImmediateDetach |
|
| 84 | 83 |
/// exception which detach the observer from the notifier. |
| 85 | 84 |
/// |
| 86 | 85 |
/// There are some place when the alteration observing is not completly |
| 87 | 86 |
/// reliable. If we want to carry out the node degree in the graph |
| ... | ... |
@@ -91,9 +91,9 @@ |
| 91 | 91 |
extern const Color DARK_MAGENTA; |
| 92 | 92 |
/// Dark cyan color constant |
| 93 | 93 |
extern const Color DARK_CYAN; |
| 94 | 94 |
|
| 95 |
///Map <tt>int</tt>s to different |
|
| 95 |
///Map <tt>int</tt>s to different <tt>Color</tt>s |
|
| 96 | 96 |
|
| 97 | 97 |
///This map assigns one of the predefined \ref Color "Color"s to |
| 98 | 98 |
///each <tt>int</tt>. It is possible to change the colors as well as |
| 99 | 99 |
///their number. The integer range is cyclically mapped to the |
| ... | ... |
@@ -981,9 +981,9 @@ |
| 981 | 981 |
|
| 982 | 982 |
/// \brief Class describing the concept of graph maps |
| 983 | 983 |
/// |
| 984 | 984 |
/// This class describes the common interface of the graph maps |
| 985 |
/// (NodeMap, ArcMap), that is |
|
| 985 |
/// (NodeMap, ArcMap), that is maps that can be used to |
|
| 986 | 986 |
/// associate data to graph descriptors (nodes or arcs). |
| 987 | 987 |
template <typename _Graph, typename _Item, typename _Value> |
| 988 | 988 |
class GraphMap : public ReadWriteMap<_Item, _Value> {
|
| 989 | 989 |
public: |
| ... | ... |
@@ -1553,9 +1553,9 @@ |
| 1553 | 1553 |
/// |
| 1554 | 1554 |
///\note This is a dynamic data structure, therefore the data |
| 1555 | 1555 |
///structure is updated after each graph alteration. Thus although |
| 1556 | 1556 |
///this data structure is theoretically faster than \ref ArcLookUp |
| 1557 |
///and \ref |
|
| 1557 |
///and \ref AllArcLookUp, it often provides worse performance than |
|
| 1558 | 1558 |
///them. |
| 1559 | 1559 |
Arc operator()(Node s, Node t, Arc p = INVALID) const {
|
| 1560 | 1560 |
if (p == INVALID) {
|
| 1561 | 1561 |
Arc a = _head[s]; |
| ... | ... |
@@ -1698,10 +1698,10 @@ |
| 1698 | 1698 |
} |
| 1699 | 1699 |
|
| 1700 | 1700 |
///Find an arc between two nodes. |
| 1701 | 1701 |
|
| 1702 |
///Find an arc between two nodes in time <em>O</em>(log<em>d</em>), where |
|
| 1703 |
///<em>d</em> is the number of outgoing arcs of \c s. |
|
| 1702 |
///Find an arc between two nodes in time <em>O</em>(log<em>d</em>), |
|
| 1703 |
///where <em>d</em> is the number of outgoing arcs of \c s. |
|
| 1704 | 1704 |
///\param s The source node. |
| 1705 | 1705 |
///\param t The target node. |
| 1706 | 1706 |
///\return An arc from \c s to \c t if there exists, |
| 1707 | 1707 |
///\ref INVALID otherwise. |
| ... | ... |
@@ -1816,10 +1816,10 @@ |
| 1816 | 1816 |
///int n = 0; |
| 1817 | 1817 |
///for(Arc a = ae(u,v); a != INVALID; a=ae(u,v,a)) n++; |
| 1818 | 1818 |
///\endcode |
| 1819 | 1819 |
/// |
| 1820 |
///Finding the first arc take <em>O</em>(log<em>d</em>) time, where |
|
| 1821 |
///<em>d</em> is the number of outgoing arcs of \c s. Then, the |
|
| 1820 |
///Finding the first arc take <em>O</em>(log<em>d</em>) time, |
|
| 1821 |
///where <em>d</em> is the number of outgoing arcs of \c s. Then the |
|
| 1822 | 1822 |
///consecutive arcs are found in constant time. |
| 1823 | 1823 |
/// |
| 1824 | 1824 |
///\warning If you change the digraph, refresh() must be called before using |
| 1825 | 1825 |
///this operator. If you change the outgoing arcs of |
| ... | ... |
@@ -834,9 +834,9 @@ |
| 834 | 834 |
///It must meet the \ref concepts::Path "Path" concept. |
| 835 | 835 |
typedef lemon::Path<Digraph> Path; |
| 836 | 836 |
}; |
| 837 | 837 |
|
| 838 |
/// Default traits class used by |
|
| 838 |
/// Default traits class used by DfsWizard |
|
| 839 | 839 |
|
| 840 | 840 |
/// To make it easier to use Dfs algorithm |
| 841 | 841 |
/// we have created a wizard class. |
| 842 | 842 |
/// This \ref DfsWizard class needs default traits, |
| ... | ... |
@@ -452,9 +452,9 @@ |
| 452 | 452 |
typedef T OperationTraits; |
| 453 | 453 |
}; |
| 454 | 454 |
|
| 455 | 455 |
/// \brief \ref named-templ-param "Named parameter" for setting |
| 456 |
///\ |
|
| 456 |
///\c OperationTraits type |
|
| 457 | 457 |
/// |
| 458 | 458 |
///\ref named-templ-param "Named parameter" for setting |
| 459 | 459 |
///\ref OperationTraits type. |
| 460 | 460 |
template <class T> |
| ... | ... |
@@ -1037,9 +1037,9 @@ |
| 1037 | 1037 |
///It must meet the \ref concepts::Path "Path" concept. |
| 1038 | 1038 |
typedef lemon::Path<Digraph> Path; |
| 1039 | 1039 |
}; |
| 1040 | 1040 |
|
| 1041 |
/// Default traits class used by |
|
| 1041 |
/// Default traits class used by DijkstraWizard |
|
| 1042 | 1042 |
|
| 1043 | 1043 |
/// To make it easier to use Dijkstra algorithm |
| 1044 | 1044 |
/// we have created a wizard class. |
| 1045 | 1045 |
/// This \ref DijkstraWizard class needs default traits, |
| ... | ... |
@@ -258,12 +258,12 @@ |
| 258 | 258 |
} |
| 259 | 259 |
|
| 260 | 260 |
|
| 261 | 261 |
|
| 262 |
/// Bounding box of plain vectors ( |
|
| 262 |
/// Bounding box of plain vectors (points). |
|
| 263 | 263 |
|
| 264 | 264 |
/// A class to calculate or store the bounding box of plain vectors |
| 265 |
/// (\ref Point points). |
|
| 265 |
/// (\ref Point "points"). |
|
| 266 | 266 |
template<typename T> |
| 267 | 267 |
class Box {
|
| 268 | 268 |
Point<T> _bottom_left, _top_right; |
| 269 | 269 |
bool _empty; |
| ... | ... |
@@ -572,13 +572,12 @@ |
| 572 | 572 |
os << "(" << b.bottomLeft() << "," << b.topRight() << ")";
|
| 573 | 573 |
return os; |
| 574 | 574 |
} |
| 575 | 575 |
|
| 576 |
///Map of x-coordinates of a |
|
| 576 |
///Map of x-coordinates of a <tt>Point</tt>-map |
|
| 577 | 577 |
|
| 578 |
///Map of x-coordinates of a \ref Point "Point"-map. |
|
| 578 | 579 |
///\ingroup maps |
| 579 |
///Map of x-coordinates of a \ref Point "Point"-map. |
|
| 580 |
/// |
|
| 581 | 580 |
template<class M> |
| 582 | 581 |
class XMap |
| 583 | 582 |
{
|
| 584 | 583 |
M& _map; |
| ... | ... |
@@ -591,11 +590,11 @@ |
| 591 | 590 |
Value operator[](Key k) const {return _map[k].x;}
|
| 592 | 591 |
void set(Key k,Value v) {_map.set(k,typename M::Value(v,_map[k].y));}
|
| 593 | 592 |
}; |
| 594 | 593 |
|
| 595 |
///Returns an |
|
| 594 |
///Returns an XMap class |
|
| 596 | 595 |
|
| 597 |
///This function just returns an |
|
| 596 |
///This function just returns an XMap class. |
|
| 598 | 597 |
/// |
| 599 | 598 |
///\ingroup maps |
| 600 | 599 |
///\relates XMap |
| 601 | 600 |
template<class M> |
| ... | ... |
@@ -609,13 +608,12 @@ |
| 609 | 608 |
{
|
| 610 | 609 |
return XMap<M>(m); |
| 611 | 610 |
} |
| 612 | 611 |
|
| 613 |
///Constant (read only) version of |
|
| 612 |
///Constant (read only) version of XMap |
|
| 614 | 613 |
|
| 614 |
///Constant (read only) version of XMap. |
|
| 615 | 615 |
///\ingroup maps |
| 616 |
///Constant (read only) version of \ref XMap |
|
| 617 |
/// |
|
| 618 | 616 |
template<class M> |
| 619 | 617 |
class ConstXMap |
| 620 | 618 |
{
|
| 621 | 619 |
const M& _map; |
| ... | ... |
@@ -627,11 +625,11 @@ |
| 627 | 625 |
ConstXMap(const M &map) : _map(map) {}
|
| 628 | 626 |
Value operator[](Key k) const {return _map[k].x;}
|
| 629 | 627 |
}; |
| 630 | 628 |
|
| 631 |
///Returns a |
|
| 629 |
///Returns a ConstXMap class |
|
| 632 | 630 |
|
| 633 |
///This function just returns a |
|
| 631 |
///This function just returns a ConstXMap class. |
|
| 634 | 632 |
/// |
| 635 | 633 |
///\ingroup maps |
| 636 | 634 |
///\relates ConstXMap |
| 637 | 635 |
template<class M> |
| ... | ... |
@@ -639,13 +637,12 @@ |
| 639 | 637 |
{
|
| 640 | 638 |
return ConstXMap<M>(m); |
| 641 | 639 |
} |
| 642 | 640 |
|
| 643 |
///Map of y-coordinates of a |
|
| 641 |
///Map of y-coordinates of a <tt>Point</tt>-map |
|
| 644 | 642 |
|
| 643 |
///Map of y-coordinates of a \ref Point "Point"-map. |
|
| 645 | 644 |
///\ingroup maps |
| 646 |
///Map of y-coordinates of a \ref Point "Point"-map. |
|
| 647 |
/// |
|
| 648 | 645 |
template<class M> |
| 649 | 646 |
class YMap |
| 650 | 647 |
{
|
| 651 | 648 |
M& _map; |
| ... | ... |
@@ -658,11 +655,11 @@ |
| 658 | 655 |
Value operator[](Key k) const {return _map[k].y;}
|
| 659 | 656 |
void set(Key k,Value v) {_map.set(k,typename M::Value(_map[k].x,v));}
|
| 660 | 657 |
}; |
| 661 | 658 |
|
| 662 |
///Returns a |
|
| 659 |
///Returns a YMap class |
|
| 663 | 660 |
|
| 664 |
///This function just returns a |
|
| 661 |
///This function just returns a YMap class. |
|
| 665 | 662 |
/// |
| 666 | 663 |
///\ingroup maps |
| 667 | 664 |
///\relates YMap |
| 668 | 665 |
template<class M> |
| ... | ... |
@@ -676,13 +673,12 @@ |
| 676 | 673 |
{
|
| 677 | 674 |
return YMap<M>(m); |
| 678 | 675 |
} |
| 679 | 676 |
|
| 680 |
///Constant (read only) version of |
|
| 677 |
///Constant (read only) version of YMap |
|
| 681 | 678 |
|
| 679 |
///Constant (read only) version of YMap. |
|
| 682 | 680 |
///\ingroup maps |
| 683 |
///Constant (read only) version of \ref YMap |
|
| 684 |
/// |
|
| 685 | 681 |
template<class M> |
| 686 | 682 |
class ConstYMap |
| 687 | 683 |
{
|
| 688 | 684 |
const M& _map; |
| ... | ... |
@@ -694,11 +690,11 @@ |
| 694 | 690 |
ConstYMap(const M &map) : _map(map) {}
|
| 695 | 691 |
Value operator[](Key k) const {return _map[k].y;}
|
| 696 | 692 |
}; |
| 697 | 693 |
|
| 698 |
///Returns a |
|
| 694 |
///Returns a ConstYMap class |
|
| 699 | 695 |
|
| 700 |
///This function just returns a |
|
| 696 |
///This function just returns a ConstYMap class. |
|
| 701 | 697 |
/// |
| 702 | 698 |
///\ingroup maps |
| 703 | 699 |
///\relates ConstYMap |
| 704 | 700 |
template<class M> |
| ... | ... |
@@ -707,10 +703,9 @@ |
| 707 | 703 |
return ConstYMap<M>(m); |
| 708 | 704 |
} |
| 709 | 705 |
|
| 710 | 706 |
|
| 711 |
///\brief Map of the \ref Point::normSquare() "normSquare()" |
|
| 712 |
///of a \ref Point "Point"-map |
|
| 707 |
///\brief Map of the normSquare() of a <tt>Point</tt>-map |
|
| 713 | 708 |
/// |
| 714 | 709 |
///Map of the \ref Point::normSquare() "normSquare()" |
| 715 | 710 |
///of a \ref Point "Point"-map. |
| 716 | 711 |
///\ingroup maps |
| ... | ... |
@@ -726,11 +721,11 @@ |
| 726 | 721 |
NormSquareMap(const M &map) : _map(map) {}
|
| 727 | 722 |
Value operator[](Key k) const {return _map[k].normSquare();}
|
| 728 | 723 |
}; |
| 729 | 724 |
|
| 730 |
///Returns a |
|
| 725 |
///Returns a NormSquareMap class |
|
| 731 | 726 |
|
| 732 |
///This function just returns a |
|
| 727 |
///This function just returns a NormSquareMap class. |
|
| 733 | 728 |
/// |
| 734 | 729 |
///\ingroup maps |
| 735 | 730 |
///\relates NormSquareMap |
| 736 | 731 |
template<class M> |
| ... | ... |
@@ -61,9 +61,9 @@ |
| 61 | 61 |
Value operator[](Key n) { return Value(map[n].x,map[n].y*yscale);}
|
| 62 | 62 |
}; |
| 63 | 63 |
} |
| 64 | 64 |
|
| 65 |
///Default traits class of |
|
| 65 |
///Default traits class of GraphToEps |
|
| 66 | 66 |
|
| 67 | 67 |
///Default traits class of \ref GraphToEps. |
| 68 | 68 |
/// |
| 69 | 69 |
///\c G is the type of the underlying graph. |
| ... | ... |
@@ -412,9 +412,9 @@ |
| 412 | 412 |
|
| 413 | 413 |
/// Change the source of \c a to \c n |
| 414 | 414 |
/// |
| 415 | 415 |
///\note The <tt>InArcIt</tt>s referencing the changed arc remain |
| 416 |
///valid. However the <tt>ArcIt<tt>s and <tt>OutArcIt</tt>s are |
|
| 416 |
///valid. However the <tt>ArcIt</tt>s and <tt>OutArcIt</tt>s are |
|
| 417 | 417 |
///invalidated. |
| 418 | 418 |
/// |
| 419 | 419 |
///\warning This functionality cannot be used together with the Snapshot |
| 420 | 420 |
///feature. |
| ... | ... |
@@ -42,9 +42,9 @@ |
| 42 | 42 |
/// required by the map %concepts. |
| 43 | 43 |
template<typename K, typename V> |
| 44 | 44 |
class MapBase {
|
| 45 | 45 |
public: |
| 46 |
/// \ |
|
| 46 |
/// \brief The key type of the map. |
|
| 47 | 47 |
typedef K Key; |
| 48 | 48 |
/// \brief The value type of the map. |
| 49 | 49 |
/// (The type of objects associated with the keys). |
| 50 | 50 |
typedef V Value; |
| ... | ... |
@@ -2265,9 +2265,9 @@ |
| 2265 | 2265 |
|
| 2266 | 2266 |
/// \brief Constructor |
| 2267 | 2267 |
/// |
| 2268 | 2268 |
/// Constructor |
| 2269 |
/// \param |
|
| 2269 |
/// \param digraph The digraph that the map belongs to. |
|
| 2270 | 2270 |
explicit SourceMap(const Digraph& digraph) : _digraph(digraph) {}
|
| 2271 | 2271 |
|
| 2272 | 2272 |
/// \brief The subscript operator. |
| 2273 | 2273 |
/// |
| ... | ... |
@@ -2304,9 +2304,9 @@ |
| 2304 | 2304 |
|
| 2305 | 2305 |
/// \brief Constructor |
| 2306 | 2306 |
/// |
| 2307 | 2307 |
/// Constructor |
| 2308 |
/// \param |
|
| 2308 |
/// \param digraph The digraph that the map belongs to. |
|
| 2309 | 2309 |
explicit TargetMap(const Digraph& digraph) : _digraph(digraph) {}
|
| 2310 | 2310 |
|
| 2311 | 2311 |
/// \brief The subscript operator. |
| 2312 | 2312 |
/// |
| ... | ... |
@@ -2343,9 +2343,9 @@ |
| 2343 | 2343 |
|
| 2344 | 2344 |
/// \brief Constructor |
| 2345 | 2345 |
/// |
| 2346 | 2346 |
/// Constructor |
| 2347 |
/// \param |
|
| 2347 |
/// \param graph The graph that the map belongs to. |
|
| 2348 | 2348 |
explicit ForwardMap(const Graph& graph) : _graph(graph) {}
|
| 2349 | 2349 |
|
| 2350 | 2350 |
/// \brief The subscript operator. |
| 2351 | 2351 |
/// |
| ... | ... |
@@ -2382,9 +2382,9 @@ |
| 2382 | 2382 |
|
| 2383 | 2383 |
/// \brief Constructor |
| 2384 | 2384 |
/// |
| 2385 | 2385 |
/// Constructor |
| 2386 |
/// \param |
|
| 2386 |
/// \param graph The graph that the map belongs to. |
|
| 2387 | 2387 |
explicit BackwardMap(const Graph& graph) : _graph(graph) {}
|
| 2388 | 2388 |
|
| 2389 | 2389 |
/// \brief The subscript operator. |
| 2390 | 2390 |
/// |
| ... | ... |
@@ -848,9 +848,9 @@ |
| 848 | 848 |
|
| 849 | 849 |
/// \brief Return true when the path is empty. |
| 850 | 850 |
int empty() const { return len == 0; }
|
| 851 | 851 |
|
| 852 |
/// \ |
|
| 852 |
/// \brief Erase all arcs in the digraph. |
|
| 853 | 853 |
void clear() {
|
| 854 | 854 |
len = 0; |
| 855 | 855 |
if (arcs) delete[] arcs; |
| 856 | 856 |
arcs = 0; |
| ... | ... |
@@ -364,9 +364,9 @@ |
| 364 | 364 |
Snapshot() : _graph(0) {}
|
| 365 | 365 |
///Constructor that immediately makes a snapshot |
| 366 | 366 |
|
| 367 | 367 |
///This constructor immediately makes a snapshot of the digraph. |
| 368 |
///\param |
|
| 368 |
///\param graph The digraph we make a snapshot of. |
|
| 369 | 369 |
Snapshot(SmartDigraph &graph) : _graph(&graph) {
|
| 370 | 370 |
node_num=_graph->nodes.size(); |
| 371 | 371 |
arc_num=_graph->arcs.size(); |
| 372 | 372 |
} |
| ... | ... |
@@ -376,9 +376,9 @@ |
| 376 | 376 |
///Make a snapshot of the digraph. |
| 377 | 377 |
/// |
| 378 | 378 |
///This function can be called more than once. In case of a repeated |
| 379 | 379 |
///call, the previous snapshot gets lost. |
| 380 |
///\param |
|
| 380 |
///\param graph The digraph we make the snapshot of. |
|
| 381 | 381 |
void save(SmartDigraph &graph) |
| 382 | 382 |
{
|
| 383 | 383 |
_graph=&graph; |
| 384 | 384 |
node_num=_graph->nodes.size(); |
| ... | ... |
@@ -774,9 +774,9 @@ |
| 774 | 774 |
Snapshot() : _graph(0) {}
|
| 775 | 775 |
///Constructor that immediately makes a snapshot |
| 776 | 776 |
|
| 777 | 777 |
///This constructor immediately makes a snapshot of the digraph. |
| 778 |
///\param |
|
| 778 |
///\param graph The digraph we make a snapshot of. |
|
| 779 | 779 |
Snapshot(SmartGraph &graph) {
|
| 780 | 780 |
graph.saveSnapshot(*this); |
| 781 | 781 |
} |
| 782 | 782 |
|
| ... | ... |
@@ -785,9 +785,9 @@ |
| 785 | 785 |
///Make a snapshot of the graph. |
| 786 | 786 |
/// |
| 787 | 787 |
///This function can be called more than once. In case of a repeated |
| 788 | 788 |
///call, the previous snapshot gets lost. |
| 789 |
///\param |
|
| 789 |
///\param graph The digraph we make the snapshot of. |
|
| 790 | 790 |
void save(SmartGraph &graph) |
| 791 | 791 |
{
|
| 792 | 792 |
graph.saveSnapshot(*this); |
| 793 | 793 |
} |
| ... | ... |
@@ -310,14 +310,13 @@ |
| 310 | 310 |
|
| 311 | 311 |
///\name Control the state of the timer |
| 312 | 312 |
///Basically a Timer can be either running or stopped, |
| 313 | 313 |
///but it provides a bit finer control on the execution. |
| 314 |
///The \ref Timer also counts the number of \ref start() |
|
| 315 |
///executions, and is stops only after the same amount (or more) |
|
| 316 |
///\ref stop() "stop()"s. This can be useful e.g. to compute |
|
| 317 |
///the running time |
|
| 314 |
///The \ref lemon::Timer "Timer" also counts the number of |
|
| 315 |
///\ref lemon::Timer::start() "start()" executions, and it stops |
|
| 316 |
///only after the same amount (or more) \ref lemon::Timer::stop() |
|
| 317 |
///"stop()"s. This can be useful e.g. to compute the running time |
|
| 318 | 318 |
///of recursive functions. |
| 319 |
/// |
|
| 320 | 319 |
|
| 321 | 320 |
///@{
|
| 322 | 321 |
|
| 323 | 322 |
///Reset and stop the time counters |
| ... | ... |
@@ -471,9 +470,9 @@ |
| 471 | 470 |
|
| 472 | 471 |
///@} |
| 473 | 472 |
}; |
| 474 | 473 |
|
| 475 |
///Same as |
|
| 474 |
///Same as Timer but prints a report on destruction. |
|
| 476 | 475 |
|
| 477 | 476 |
///Same as \ref Timer but prints a report on destruction. |
| 478 | 477 |
///This example shows its usage. |
| 479 | 478 |
///\code |
| ... | ... |
@@ -490,24 +489,24 @@ |
| 490 | 489 |
{
|
| 491 | 490 |
std::string _title; |
| 492 | 491 |
std::ostream &_os; |
| 493 | 492 |
public: |
| 494 |
/// |
|
| 493 |
///Constructor |
|
| 495 | 494 |
|
| 495 |
///Constructor. |
|
| 496 | 496 |
///\param title This text will be printed before the ellapsed time. |
| 497 | 497 |
///\param os The stream to print the report to. |
| 498 | 498 |
///\param run Sets whether the timer should start immediately. |
| 499 |
|
|
| 500 | 499 |
TimeReport(std::string title,std::ostream &os=std::cerr,bool run=true) |
| 501 | 500 |
: Timer(run), _title(title), _os(os){}
|
| 502 |
/// |
|
| 501 |
///Destructor that prints the ellapsed time |
|
| 503 | 502 |
~TimeReport() |
| 504 | 503 |
{
|
| 505 | 504 |
_os << _title << *this << std::endl; |
| 506 | 505 |
} |
| 507 | 506 |
}; |
| 508 | 507 |
|
| 509 |
///'Do nothing' version of |
|
| 508 |
///'Do nothing' version of TimeReport |
|
| 510 | 509 |
|
| 511 | 510 |
///\sa TimeReport |
| 512 | 511 |
/// |
| 513 | 512 |
class NoTimeReport |
0 comments (0 inline)