Formatter for float types. More...
#include <floats.hpp>
Public Member Functions | |
FormatFloat< Number > & | align (const ecl::Alignment a) |
Sets the alignment format parameter. | |
FormatFloat< Number > & | base (const ecl::FloatBase b) |
Sets the base notation to use. | |
FormatFloat (const int w=-1, const unsigned int p=4, const ecl::Alignment a=NoAlign, const ecl::FloatBase b=Fixed) | |
FormatFloat< Number > & | operator() (unsigned int p, const int w) |
FormatFloat< Number > & | operator() (const unsigned int p, const int w, const ecl::Alignment align, const ecl::FloatBase b) |
FormatFloat< Number > & | operator() (const Number n) |
FormatFloat< Number > & | operator() (const Number n, const unsigned int p, const int w) |
FormatFloat< Number > & | operator() (const Number n, const unsigned int p, const int w, const ecl::Alignment align, const ecl::FloatBase b) |
FormatFloat< Number > & | precision (const unsigned int p) |
Sets the precision format parameter. | |
int | precision () |
Returns the current precision setting. | |
FormatFloat< Number > & | width (const int w) |
Sets the width format parameter. | |
int | width () |
Returns the current precision setting. | |
virtual | ~FormatFloat () |
Protected Member Functions | |
template<typename OutputStream > | |
void | formatFixed (OutputStream &ostream) const |
template<typename OutputStream > | |
void | formatSci (OutputStream &ostream) const |
template<typename OutputStream > | |
void | pad (int n, OutputStream &ostream) const |
template<typename OutputStream > | |
void | postPad (int n, OutputStream &ostream) const |
template<typename OutputStream > | |
void | prePad (int n, OutputStream &ostream) const |
Protected Attributes | |
ecl::Alignment * | alignment_ |
ecl::FloatBase * | base_ |
int * | precision_ |
ecl::Alignment | prm_alignment |
ecl::FloatBase | prm_base |
int | prm_precision |
int | prm_width |
bool | ready_to_format |
ecl::Alignment | tmp_alignment |
ecl::FloatBase | tmp_base |
int | tmp_precision |
int | tmp_width |
Number | value_ |
int * | width_ |
Friends | |
template<typename OutputStream , typename N > | |
OutputStream & | operator<< (OutputStream &ostream, FormatFloat< N > &formatter) ecl_assert_throw_decl(StandardException) |
Formatter for float types.
Default formatter for float types. For convenience, use the individual Format<float|double> classes that inherit this one instead.
Definition at line 57 of file floats.hpp.
ecl::interfaces::FormatFloat< Number >::FormatFloat | ( | const int | w = -1 , |
const unsigned int | p = 4 , |
||
const ecl::Alignment | a = NoAlign , |
||
const ecl::FloatBase | b = Fixed |
||
) | [inline] |
Default constructor. Initialises the format tags for width, precision, alignment and base.
w | : width (default - no width constraints) |
p | : the number of decimal places of precision (default - 4) |
a | : the textual alignment (default - no alignment constraints) |
b | : the base format for the floating point representation (default - fixed) |
Definition at line 69 of file floats.hpp.
virtual ecl::interfaces::FormatFloat< Number >::~FormatFloat | ( | ) | [inline, virtual] |
Definition at line 80 of file floats.hpp.
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::align | ( | const ecl::Alignment | a | ) |
Sets the alignment format parameter.
Sets the alignment format parameter.
a | : the textual alignment. |
Sets the alignment format parameter. This aligns the text output in the text window which has a width specified by the width parameter.
a | : the aligning property for the output text. |
Definition at line 270 of file floats.hpp.
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::base | ( | const ecl::FloatBase | b | ) |
Sets the base notation to use.
Sets the base notation to use (fixed or scientific).
b | : the base format for the floating point representation. |
Sets the base format. For floating point values, this can be fixed, exponential or scientific.
b | : the base representation used for the output. |
Definition at line 244 of file floats.hpp.
void ecl::interfaces::FormatFloat< Number >::formatFixed | ( | OutputStream & | ostream | ) | const [protected] |
Definition at line 361 of file floats.hpp.
void ecl::interfaces::FormatFloat< Number >::formatSci | ( | OutputStream & | ostream | ) | const [protected] |
Definition at line 393 of file floats.hpp.
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::operator() | ( | unsigned int | p, |
const int | w | ||
) |
Convenient stream format parameter setter. This one permanently configures the width and precision as specified.
p | : the number of decimal places of precision. |
w | : the total width of the text output. |
Definition at line 285 of file floats.hpp.
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::operator() | ( | const unsigned int | p, |
const int | w, | ||
const ecl::Alignment | align, | ||
const ecl::FloatBase | b | ||
) |
Convenient stream format parameter setter. This one permanently configures all parameters.
p | : the number of decimal places of precision. |
w | : the total width of the text output. |
align | : the aligning property for the output text. |
b | : the base representation used for the output. |
Definition at line 293 of file floats.hpp.
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::operator() | ( | const Number | n | ) |
Convenient stream formatter. This function directly formats the specified input value with the stored settings.
Format<float> format; cout << format(3,4)(3.5215233) << endl;
n | : the input value to be formatted. |
Definition at line 306 of file floats.hpp.
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::operator() | ( | const Number | n, |
const unsigned int | p, | ||
const int | w | ||
) |
Convenient stream formatter. This member directly formats the specified input value with the supplied/temporary parameters.
n | : the input value to be formatted. |
p | : the number of decimal places of precision. |
w | : the total width of the text output. |
Definition at line 316 of file floats.hpp.
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::operator() | ( | const Number | n, |
const unsigned int | p, | ||
const int | w, | ||
const ecl::Alignment | align, | ||
const ecl::FloatBase | b | ||
) |
Convenient stream formatter. This member directly formats the specified input value with the supplied/temporary parameters.
n | : the input value to be formatted. |
p | : the number of decimal places of precision. |
w | : the total width of the text output. |
align | : the aligning property for the output text. |
b | : the base representation used for the output. |
Definition at line 336 of file floats.hpp.
void ecl::interfaces::FormatFloat< Number >::pad | ( | int | n, |
OutputStream & | ostream | ||
) | const [protected] |
Definition at line 431 of file floats.hpp.
void ecl::interfaces::FormatFloat< Number >::postPad | ( | int | n, |
OutputStream & | ostream | ||
) | const [protected] |
Definition at line 416 of file floats.hpp.
FormatFloat<Number>& ecl::interfaces::FormatFloat< Number >::precision | ( | const unsigned int | p | ) | [inline] |
Sets the precision format parameter.
Sets the precision format parameter.
p | : the number of decimal places of precision. |
Definition at line 93 of file floats.hpp.
int ecl::interfaces::FormatFloat< Number >::precision | ( | ) | [inline] |
Returns the current precision setting.
Definition at line 129 of file floats.hpp.
void ecl::interfaces::FormatFloat< Number >::prePad | ( | int | n, |
OutputStream & | ostream | ||
) | const [protected] |
Definition at line 401 of file floats.hpp.
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::width | ( | const int | w | ) |
Sets the width format parameter.
Sets the width format parameter.
w | : the width to use for the inserted float (-1 is no width constraint). |
Sets the width format parameter. Setting this to -1 will turn off width formatting constraints.
w | : the total width of the text output. |
Definition at line 254 of file floats.hpp.
int ecl::interfaces::FormatFloat< Number >::width | ( | ) | [inline] |
Returns the current precision setting.
Definition at line 136 of file floats.hpp.
OutputStream& operator<< | ( | OutputStream & | ostream, |
FormatFloat< N > & | formatter | ||
) | [friend] |
Friend function which allows a stream to act on the formatter to produce the formatted result. This works on normal c++ streams as well as TextStreams.
ostream | : the stream. |
formatter | : the formatter with prespecified format parameters and input value. |
Definition at line 443 of file floats.hpp.
ecl::Alignment* ecl::interfaces::FormatFloat< Number >::alignment_ [protected] |
Definition at line 216 of file floats.hpp.
ecl::FloatBase* ecl::interfaces::FormatFloat< Number >::base_ [protected] |
Definition at line 217 of file floats.hpp.
int * ecl::interfaces::FormatFloat< Number >::precision_ [protected] |
Definition at line 215 of file floats.hpp.
ecl::Alignment ecl::interfaces::FormatFloat< Number >::prm_alignment [protected] |
Definition at line 213 of file floats.hpp.
ecl::FloatBase ecl::interfaces::FormatFloat< Number >::prm_base [protected] |
Definition at line 214 of file floats.hpp.
int ecl::interfaces::FormatFloat< Number >::prm_precision [protected] |
Definition at line 212 of file floats.hpp.
int ecl::interfaces::FormatFloat< Number >::prm_width [protected] |
Definition at line 211 of file floats.hpp.
bool ecl::interfaces::FormatFloat< Number >::ready_to_format [protected] |
Definition at line 218 of file floats.hpp.
ecl::Alignment ecl::interfaces::FormatFloat< Number >::tmp_alignment [protected] |
Definition at line 213 of file floats.hpp.
ecl::FloatBase ecl::interfaces::FormatFloat< Number >::tmp_base [protected] |
Definition at line 214 of file floats.hpp.
int ecl::interfaces::FormatFloat< Number >::tmp_precision [protected] |
Definition at line 212 of file floats.hpp.
int ecl::interfaces::FormatFloat< Number >::tmp_width [protected] |
Definition at line 211 of file floats.hpp.
Number ecl::interfaces::FormatFloat< Number >::value_ [protected] |
Definition at line 219 of file floats.hpp.
int* ecl::interfaces::FormatFloat< Number >::width_ [protected] |
Definition at line 215 of file floats.hpp.