|
void | swap (Path &p1, Path &p2) |
|
void | swap (URI &u1, URI &u2) |
|
template<typename ValueType > |
ValueType * | AnyCast (Any *operand) |
|
template<typename ValueType > |
const ValueType * | AnyCast (const Any *operand) |
|
template<typename ValueType > |
ValueType | AnyCast (Any &operand) |
|
template<typename ValueType > |
ValueType | AnyCast (const Any &operand) |
|
template<typename ValueType > |
const ValueType & | RefAnyCast (const Any &operand) |
|
template<typename ValueType > |
ValueType & | RefAnyCast (Any &operand) |
|
template<typename ValueType > |
ValueType * | UnsafeAnyCast (Any *operand) |
|
template<typename ValueType > |
const ValueType * | UnsafeAnyCast (const Any *operand) |
|
template<class C > |
void | swap (AutoPtr< C > &p1, AutoPtr< C > &p2) |
|
template<typename T , typename... Args> |
AutoPtr< T > | makeAuto (Args &&... args) |
|
void | swap (DateTime &d1, DateTime &d2) |
|
std::string Foundation_API | format (const std::string &fmt, const Any &value) |
|
void Foundation_API | format (std::string &result, const char *fmt, const std::vector< Any > &values) |
|
void Foundation_API | format (std::string &result, const std::string &fmt, const std::vector< Any > &values) |
|
template<typename T , typename... Args> |
void | format (std::string &result, const std::string &fmt, T arg1, Args... args) |
| Appends the formatted string to result.
|
|
template<typename T , typename... Args> |
void | format (std::string &result, const char *fmt, T arg1, Args... args) |
| Appends the formatted string to result.
|
|
template<typename T , typename... Args> |
std::string | format (const std::string &fmt, T arg1, Args... args) |
| Returns the formatted string.
|
|
template<typename T , typename... Args> |
std::string | format (const char *fmt, T arg1, Args... args) |
| Returns the formatted string.
|
|
template<class C , class RC , class RP > |
void | swap (SharedPtr< C, RC, RP > &p1, SharedPtr< C, RC, RP > &p2) |
|
template<typename T , typename... Args> |
SharedPtr< T > | makeShared (Args &&... args) |
|
template<typename T > |
SharedPtr< T, ReferenceCounter, ReleaseArrayPolicy< T > > | makeSharedArray (std::size_t size) |
|
template<class S > |
S | trimLeft (const S &str) |
|
template<class S > |
S & | trimLeftInPlace (S &str) |
| Removes all leading whitespace in str.
|
|
template<class S > |
S | trimRight (const S &str) |
|
template<class S > |
S & | trimRightInPlace (S &str) |
| Removes all trailing whitespace in str.
|
|
template<class S > |
S | trim (const S &str) |
|
template<class S > |
S & | trimInPlace (S &str) |
| Removes all leading and trailing whitespace in str.
|
|
template<class S > |
S | toUpper (const S &str) |
| Returns a copy of str containing all upper-case characters.
|
|
template<class S > |
S & | toUpperInPlace (S &str) |
| Replaces all characters in str with their upper-case counterparts.
|
|
template<class S > |
S | toLower (const S &str) |
| Returns a copy of str containing all lower-case characters.
|
|
template<class S > |
S & | toLowerInPlace (S &str) |
| Replaces all characters in str with their lower-case counterparts.
|
|
template<class S , class It > |
int | icompare (const S &str, typename S::size_type pos, typename S::size_type n, It it2, It end2) |
| Case-insensitive string comparison.
|
|
template<class S > |
int | icompare (const S &str1, const S &str2) |
|
template<class S > |
int | icompare (const S &str1, typename S::size_type n1, const S &str2, typename S::size_type n2) |
|
template<class S > |
int | icompare (const S &str1, typename S::size_type n, const S &str2) |
|
template<class S > |
int | icompare (const S &str1, typename S::size_type pos, typename S::size_type n, const S &str2) |
|
template<class S > |
int | icompare (const S &str1, typename S::size_type pos1, typename S::size_type n1, const S &str2, typename S::size_type pos2, typename S::size_type n2) |
|
template<class S > |
int | icompare (const S &str1, typename S::size_type pos1, typename S::size_type n, const S &str2, typename S::size_type pos2) |
|
template<class S > |
int | icompare (const S &str, typename S::size_type pos, typename S::size_type n, const typename S::value_type *ptr) |
|
template<class S > |
int | icompare (const S &str, typename S::size_type pos, const typename S::value_type *ptr) |
|
template<class S > |
int | icompare (const S &str, const typename S::value_type *ptr) |
|
template<class S > |
S | translate (const S &str, const S &from, const S &to) |
|
template<class S > |
S | translate (const S &str, const typename S::value_type *from, const typename S::value_type *to) |
|
template<class S > |
S & | translateInPlace (S &str, const S &from, const S &to) |
|
template<class S > |
S | translateInPlace (S &str, const typename S::value_type *from, const typename S::value_type *to) |
|
template<class S > |
S & | replaceInPlace (S &str, const S &from, const S &to, typename S::size_type start=0) |
|
template<class S > |
S & | replaceInPlace (S &str, const typename S::value_type *from, const typename S::value_type *to, typename S::size_type start=0) |
|
template<class S > |
S & | replaceInPlace (S &str, const typename S::value_type from, const typename S::value_type to=0, typename S::size_type start=0) |
|
template<class S > |
S & | removeInPlace (S &str, const typename S::value_type ch, typename S::size_type start=0) |
|
template<class S > |
S | replace (const S &str, const S &from, const S &to, typename S::size_type start=0) |
|
template<class S > |
S | replace (const S &str, const typename S::value_type *from, const typename S::value_type *to, typename S::size_type start=0) |
|
template<class S > |
S | replace (const S &str, const typename S::value_type from, const typename S::value_type to=0, typename S::size_type start=0) |
|
template<class S > |
S | remove (const S &str, const typename S::value_type ch, typename S::size_type start=0) |
|
template<class S > |
S | cat (const S &s1, const S &s2) |
| Concatenates two strings.
|
|
template<class S > |
S | cat (const S &s1, const S &s2, const S &s3) |
| Concatenates three strings.
|
|
template<class S > |
S | cat (const S &s1, const S &s2, const S &s3, const S &s4) |
| Concatenates four strings.
|
|
template<class S > |
S | cat (const S &s1, const S &s2, const S &s3, const S &s4, const S &s5) |
| Concatenates five strings.
|
|
template<class S > |
S | cat (const S &s1, const S &s2, const S &s3, const S &s4, const S &s5, const S &s6) |
| Concatenates six strings.
|
|
template<class S , class It > |
S | cat (const S &delim, const It &begin, const It &end) |
|
template<class S > |
bool | startsWith (const S &str, const S &prefix) |
| Tests whether the string starts with the given prefix.
|
|
template<class S > |
bool | endsWith (const S &str, const S &suffix) |
| Tests whether the string ends with the given suffix.
|
|
template<typename T > |
std::size_t | isubstr (const T &str, const T &sought) |
| Case-insensitive std::string counterpart.
|
|
void | swap (Timespan &s1, Timespan &s2) |
|
void | swap (Timestamp &s1, Timestamp &s2) |
|
void Foundation_API Poco::format |
( |
std::string & | result, |
|
|
const char * | fmt, |
|
|
const std::vector< Any > & | values ) |
This function implements sprintf-style formatting in a typesafe way. Various variants of the function are available, supporting a different number of arguments (up to six).
The formatting is controlled by the format string in fmt. Format strings are quite similar to those of the std::printf() function, but there are some minor differences.
The format string can consist of any sequence of characters; certain characters have a special meaning. Characters without a special meaning are copied verbatim to the result. A percent sign (%) marks the beginning of a format specification. Format specifications have the following syntax:
%[<index>][<flags>][<width>][.<precision>][<modifier>]<type>
Index, flags, width, precision and prefix are optional. The only required part of the format specification, apart from the percent sign, is the type.
The optional index argument has the format "[<n>]" and allows to address an argument by its zero-based position (see the example below).
Following are valid type specifications and their meaning:
- b boolean (true = 1, false = 0)
- c character
- d signed decimal integer
- i signed decimal integer
- o unsigned octal integer
- u unsigned decimal integer
- x unsigned hexadecimal integer (lower case)
- X unsigned hexadecimal integer (upper case)
- e signed floating-point value in the form [-]d.dddde[<sign>]dd[d]
- E signed floating-point value in the form [-]d.ddddE[<sign>]dd[d]
- f signed floating-point value in the form [-]dddd.dddd
- s std::string
- z std::size_t
The following flags are supported:
- - left align the result within the given field width
- + prefix the output value with a sign (+ or -) if the output value is of a signed type
- 0 if width is prefixed with 0, zeros are added until the minimum width is reached
- # For o, x, X, the # flag prefixes any nonzero output value with 0, 0x, or 0X, respectively; for e, E, f, the # flag forces the output value to contain a decimal point in all cases.
The following modifiers are supported:
- (none) argument is char (c), int (d, i), unsigned (o, u, x, X) double (e, E, f, g, G) or string (s)
- l argument is long (d, i), unsigned long (o, u, x, X) or long double (e, E, f, g, G)
- L argument is long long (d, i), unsigned long long (o, u, x, X)
- h argument is short (d, i), unsigned short (o, u, x, X) or float (e, E, f, g, G)
- ? argument is any signed or unsigned int, short, long, or 64-bit integer (d, i, o, x, X)
The width argument is a nonnegative decimal integer or '*' with an additional nonnegative integer value preceding the value to be formated, controlling the minimum number of characters printed. If the number of characters in the output value is less than the specified width, blanks or leading zeros are added, according to the specified flags (-, +, 0).
Precision is a nonnegative decimal integer or '*' with an additional nonnegative integer value preceding the value to be formated, preceded by a period (.), which specifies the number of characters to be printed, the number of decimal places, or the number of significant digits.
Throws an InvalidArgumentException if an argument index is out of range.
Starting with release 1.4.3, an argument that does not match the format specifier no longer results in a BadCastException. The string [ERRFMT] is written to the result string instead.
If there are more format specifiers than values, the format specifiers without a corresponding value are copied verbatim to output.
If there are more values than format specifiers, the superfluous values are ignored.
Usage Examples: std::string s1 = format("The answer to life, the universe, and everything is %d", 42); std::string s2 = format("second: %[1]d, first: %[0]d", 1, 2);