C++ Library containing a lot of needful things: Stack Trace, Command Line Parser, Resource Handling, Configuration Files, Unix Command Execution, Directories, Regular Expressions, Tokenizer, Function Trace, Standard Extensions.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.3 KiB
122 lines
3.3 KiB
/** @file |
|
|
|
$Id$ |
|
|
|
$Date$ |
|
$Author$ |
|
|
|
@copy © Marc Wäckerlin |
|
@license LGPL, see file <a href="license.html">COPYING</a> |
|
|
|
$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 |
|
error in documentation: group forgotten |
|
|
|
Revision 1.2 2004/10/13 11:18:33 marc |
|
getline reads a whole line from a stream |
|
|
|
Revision 1.1 2004/10/11 18:30:16 marc |
|
*** empty log message *** |
|
|
|
|
|
*/ |
|
|
|
#include <string> |
|
#include <iostream> |
|
#include <algorithm> |
|
|
|
namespace mrw { |
|
|
|
/** @addtogroup StdExt |
|
*/ |
|
//@{ |
|
|
|
/** @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. |
|
If both values are equal, @c a is returned. |
|
|
|
@param a first value to compare |
|
@param b second value to compare |
|
@return the lower of both values |
|
@pre #include <mrw/stdext.hpp> |
|
@pre @c T must support <code>bool operator>(conbst T&, constT&)</code> |
|
*/ |
|
template<typename T> const T& min(const T& a, const T& b) { |
|
/// calls @c std::min(a, b); |
|
/// @deprecated will be removed in next major release |
|
return std::min(a, b); |
|
} |
|
|
|
/** @brief Deprecated! Do not use any more! |
|
|
|
@deprecated Use @c std::max from @c |
|
#include <algorithm> instead! |
|
|
|
Get the higher of two values. |
|
If both values are equal, @c a is returned. |
|
|
|
@param a first value to compare |
|
@param b second value to compare |
|
@return the higher of both values |
|
@pre #include <mrw/stdext.hpp> |
|
@pre @c T must support <code>bool operator<(conbst T&, constT&)</code> |
|
*/ |
|
template<typename T> const T& max(const T& a, const T& b) { |
|
/// 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 |
|
|
|
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 d the end of line delimiter |
|
@return the line read from the stream |
|
@pre #include <mrw/stdext.hpp> |
|
*/ |
|
std::string getline(std::istream& is, char d = '\n'); |
|
|
|
/** @brief read one line from a stream |
|
|
|
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 s the string to place the line in |
|
@param d the end of line delimiter |
|
@return @c s: the line read from the stream |
|
@return the stream after extraction of line |
|
@pre #include <mrw/stdext.hpp> |
|
*/ |
|
std::istream& getline(std::istream& is, std::string& s, char d = '\n'); |
|
|
|
//@} |
|
//@} |
|
}
|
|
|