|
|
@ -9,6 +9,9 @@ |
|
|
|
@license LGPL, see file <a href="license.html">COPYING</a> |
|
|
|
@license LGPL, see file <a href="license.html">COPYING</a> |
|
|
|
|
|
|
|
|
|
|
|
$Log$ |
|
|
|
$Log$ |
|
|
|
|
|
|
|
Revision 1.4 2004/12/20 07:40:36 marc |
|
|
|
|
|
|
|
documentation improved, new grouping |
|
|
|
|
|
|
|
|
|
|
|
Revision 1.3 2004/12/17 16:27:28 marc |
|
|
|
Revision 1.3 2004/12/17 16:27:28 marc |
|
|
|
error in documentation: group forgotten |
|
|
|
error in documentation: group forgotten |
|
|
|
|
|
|
|
|
|
|
@ -23,6 +26,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
#include <string> |
|
|
|
#include <string> |
|
|
|
#include <iostream> |
|
|
|
#include <iostream> |
|
|
|
|
|
|
|
#include <algorithm> |
|
|
|
|
|
|
|
|
|
|
|
namespace mrw { |
|
|
|
namespace mrw { |
|
|
|
|
|
|
|
|
|
|
@ -30,7 +34,27 @@ namespace mrw { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
//@{
|
|
|
|
//@{
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief get the lower of two values
|
|
|
|
/** @defgroup stdextReadline Read Line
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The global functions mrw::getline read exactly one line from a |
|
|
|
|
|
|
|
stream, without the need of a buffer. It is therefore guaranteed |
|
|
|
|
|
|
|
that a whole line is read, regardless of the length of the |
|
|
|
|
|
|
|
line. The result is returned as std::string. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@code |
|
|
|
|
|
|
|
// first syntax returns a string:
|
|
|
|
|
|
|
|
std::string line(mrw::readline(std::cin)); |
|
|
|
|
|
|
|
// second syntax returns the stream:
|
|
|
|
|
|
|
|
while (mrw::readline(std::cin, line)) |
|
|
|
|
|
|
|
std::cout<<"Read: "<<line<<std::endl; |
|
|
|
|
|
|
|
@endcode |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
//@{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief Deprecated! Do not use any more!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@deprecated Use @c std::min from @c |
|
|
|
|
|
|
|
#include <algorithm> instead! |
|
|
|
|
|
|
|
|
|
|
|
Get the lower of two values. |
|
|
|
Get the lower of two values. |
|
|
|
If both values are equal, @c a is returned. |
|
|
|
If both values are equal, @c a is returned. |
|
|
@ -42,10 +66,15 @@ namespace mrw { |
|
|
|
@pre @c T must support <code>bool operator>(conbst T&, constT&)</code> |
|
|
|
@pre @c T must support <code>bool operator>(conbst T&, constT&)</code> |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
template<typename T> const T& min(const T& a, const T& b) { |
|
|
|
template<typename T> const T& min(const T& a, const T& b) { |
|
|
|
return a > b ? b : a; |
|
|
|
/// calls @c std::min(a, b);
|
|
|
|
|
|
|
|
/// @deprecated will be removed in next major release
|
|
|
|
|
|
|
|
return std::min(a, b); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** @brief get the higher of two values
|
|
|
|
/** @brief Deprecated! Do not use any more!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@deprecated Use @c std::max from @c |
|
|
|
|
|
|
|
#include <algorithm> instead! |
|
|
|
|
|
|
|
|
|
|
|
Get the higher of two values. |
|
|
|
Get the higher of two values. |
|
|
|
If both values are equal, @c a is returned. |
|
|
|
If both values are equal, @c a is returned. |
|
|
@ -57,12 +86,15 @@ namespace mrw { |
|
|
|
@pre @c T must support <code>bool operator<(conbst T&, constT&)</code> |
|
|
|
@pre @c T must support <code>bool operator<(conbst T&, constT&)</code> |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
template<typename T> const T& max(const T& a, const T& b) { |
|
|
|
template<typename T> const T& max(const T& a, const T& b) { |
|
|
|
return a < b ? b : a; |
|
|
|
/// calls @c std::max(a, b);
|
|
|
|
|
|
|
|
/// @deprecated will be removed in next major release
|
|
|
|
|
|
|
|
return std::max(a, b); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** @brief read one line from a stream
|
|
|
|
/** @brief read one line from a stream
|
|
|
|
|
|
|
|
|
|
|
|
Reads one line from a stream, up to delimiter @c d. |
|
|
|
Reads one line from a stream, up to delimiter @c d. |
|
|
|
|
|
|
|
The delimiter is not appended to the string. |
|
|
|
|
|
|
|
|
|
|
|
@param is the stream to read from |
|
|
|
@param is the stream to read from |
|
|
|
@param d the end of line delimiter |
|
|
|
@param d the end of line delimiter |
|
|
@ -74,6 +106,7 @@ namespace mrw { |
|
|
|
/** @brief read one line from a stream
|
|
|
|
/** @brief read one line from a stream
|
|
|
|
|
|
|
|
|
|
|
|
Reads one line from a stream, up to delimiter @c d. |
|
|
|
Reads one line from a stream, up to delimiter @c d. |
|
|
|
|
|
|
|
The delimiter is not appended to the string. |
|
|
|
|
|
|
|
|
|
|
|
@param is the stream to read from |
|
|
|
@param is the stream to read from |
|
|
|
@param s the string to place the line in |
|
|
|
@param s the string to place the line in |
|
|
@ -85,4 +118,5 @@ namespace mrw { |
|
|
|
std::istream& getline(std::istream& is, std::string& s, char d = '\n'); |
|
|
|
std::istream& getline(std::istream& is, std::string& s, char d = '\n'); |
|
|
|
|
|
|
|
|
|
|
|
//@}
|
|
|
|
//@}
|
|
|
|
|
|
|
|
//@}
|
|
|
|
} |
|
|
|
} |
|
|
|