AnyCast operator used to extract a copy of the ValueType from an const Any&.

Example Usage: MyType tmp = AnyCast<MyType>(anAny). Will throw a BadCastException if the cast fails. Dont use an AnyCast in combination with references, i.e. MyType& tmp = ... or const MyType& = ... Some compilers will accept this code although a copy is returned. Use the RefAnyCast in these cases.

AnyCast operator used to extract a copy of the ValueType from an Any&.

Example Usage: MyType tmp = AnyCast<MyType>(anAny). Will throw a BadCastException if the cast fails. Dont use an AnyCast in combination with references, i.e. MyType& tmp = ... or const MyType& tmp = ... Some compilers will accept this code although a copy is returned. Use the RefAnyCast in these cases.

The "unsafe" versions of AnyCast are not part of the public interface and may be removed at any time. They are required where we know what type is stored in the any and can't use typeid() comparison, e.g., when our types may travel across different shared libraries.

The "unsafe" versions of AnyCast are not part of the public interface and may be removed at any time. They are required where we know what type is stored in the any and can't use typeid() comparison, e.g., when our types may travel across different shared libraries.

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 width argument is a nonnegative decimal integer 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, preceded by a period (.), which specifies the number of characters to be printed, the number of decimal places, or the number of significant digits.

Converts zero-terminated array to floating-point number; Returns true if succesful. Exponent underflow (i.e. loss of precision) is signalled in eu. Thousand separators are recognized for the locale and silently skipped but not verified for correct positioning.

If parsing was unsuccesful, the return value is false with result and eu values undetermined.

Converts zero-terminated character array to integer number; Thousand separators are recognized for base10 and current locale; it is silently skipped but not verified for correct positioning. Function returns true if succesful. If parsing was unsuccesful, the return value is false with the result value undetermined.