Public Member Functions | Protected Member Functions | Protected Attributes | Friends
ecl::interfaces::FormatFloat< Number > Class Template Reference

Formatter for float types. More...

#include <floats.hpp>

List of all members.

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)

Detailed Description

template<typename Number>
class ecl::interfaces::FormatFloat< Number >

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.


Constructor & Destructor Documentation

template<typename Number>
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.

Parameters:
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.

template<typename Number>
virtual ecl::interfaces::FormatFloat< Number >::~FormatFloat ( ) [inline, virtual]

Definition at line 80 of file floats.hpp.


Member Function Documentation

template<typename Number >
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::align ( const ecl::Alignment  a)

Sets the alignment format parameter.

Sets the alignment format parameter.

Parameters:
a: the textual alignment.
Returns:
FormatFloat& : this formatter readied for use with a stream.

Sets the alignment format parameter. This aligns the text output in the text window which has a width specified by the width parameter.

Parameters:
a: the aligning property for the output text.
See also:
Alignment

Definition at line 270 of file floats.hpp.

template<typename Number >
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).

Parameters:
b: the base format for the floating point representation.
Returns:
FormatFloat& : this formatter readied for use with a stream.

Sets the base format. For floating point values, this can be fixed, exponential or scientific.

Parameters:
b: the base representation used for the output.
See also:
FloatBase

Definition at line 244 of file floats.hpp.

template<typename Number >
template<typename OutputStream >
void ecl::interfaces::FormatFloat< Number >::formatFixed ( OutputStream &  ostream) const [protected]

Definition at line 361 of file floats.hpp.

template<typename Number >
template<typename OutputStream >
void ecl::interfaces::FormatFloat< Number >::formatSci ( OutputStream &  ostream) const [protected]

Definition at line 393 of file floats.hpp.

template<typename Number >
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.

Parameters:
p: the number of decimal places of precision.
w: the total width of the text output.
Returns:
FormatFloat& : this formatter readied for use with a stream.

Definition at line 285 of file floats.hpp.

template<typename Number >
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.

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.
Returns:
FormatFloat& : this formatter readied for use with a stream.

Definition at line 293 of file floats.hpp.

template<typename Number>
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;
Parameters:
n: the input value to be formatted.
Returns:
FormatFloat& : this formatter readied for use with a stream.

Definition at line 306 of file floats.hpp.

template<typename Number>
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.

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.

template<typename Number>
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.

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.

template<typename Number >
template<typename OutputStream >
void ecl::interfaces::FormatFloat< Number >::pad ( int  n,
OutputStream &  ostream 
) const [protected]

Definition at line 431 of file floats.hpp.

template<typename Number >
template<typename OutputStream >
void ecl::interfaces::FormatFloat< Number >::postPad ( int  n,
OutputStream &  ostream 
) const [protected]

Definition at line 416 of file floats.hpp.

template<typename Number>
FormatFloat<Number>& ecl::interfaces::FormatFloat< Number >::precision ( const unsigned int  p) [inline]

Sets the precision format parameter.

Sets the precision format parameter.

Parameters:
p: the number of decimal places of precision.
Returns:
FormatFloat& : this formatter readied for use with a stream.

Definition at line 93 of file floats.hpp.

template<typename Number>
int ecl::interfaces::FormatFloat< Number >::precision ( ) [inline]

Returns the current precision setting.

Returns:
int : the precision value.

Definition at line 129 of file floats.hpp.

template<typename Number >
template<typename OutputStream >
void ecl::interfaces::FormatFloat< Number >::prePad ( int  n,
OutputStream &  ostream 
) const [protected]

Definition at line 401 of file floats.hpp.

template<typename Number >
FormatFloat< Number > & ecl::interfaces::FormatFloat< Number >::width ( const int  w)

Sets the width format parameter.

Sets the width format parameter.

Parameters:
w: the width to use for the inserted float (-1 is no width constraint).
Returns:
FormatFloat& : this formatter readied for use with a stream.

Sets the width format parameter. Setting this to -1 will turn off width formatting constraints.

Parameters:
w: the total width of the text output.

Definition at line 254 of file floats.hpp.

template<typename Number>
int ecl::interfaces::FormatFloat< Number >::width ( ) [inline]

Returns the current precision setting.

Returns:
int : the width value (-1 for no constraint).

Definition at line 136 of file floats.hpp.


Friends And Related Function Documentation

template<typename Number>
template<typename OutputStream , typename N >
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.

Parameters:
ostream: the stream.
formatter: the formatter with prespecified format parameters and input value.
Returns:
OutputStream& : return the stream that was utilised.

Definition at line 443 of file floats.hpp.


Member Data Documentation

template<typename Number>
ecl::Alignment* ecl::interfaces::FormatFloat< Number >::alignment_ [protected]

Definition at line 216 of file floats.hpp.

template<typename Number>
ecl::FloatBase* ecl::interfaces::FormatFloat< Number >::base_ [protected]

Definition at line 217 of file floats.hpp.

template<typename Number>
int * ecl::interfaces::FormatFloat< Number >::precision_ [protected]

Definition at line 215 of file floats.hpp.

template<typename Number>
ecl::Alignment ecl::interfaces::FormatFloat< Number >::prm_alignment [protected]

Definition at line 213 of file floats.hpp.

template<typename Number>
ecl::FloatBase ecl::interfaces::FormatFloat< Number >::prm_base [protected]

Definition at line 214 of file floats.hpp.

template<typename Number>
int ecl::interfaces::FormatFloat< Number >::prm_precision [protected]

Definition at line 212 of file floats.hpp.

template<typename Number>
int ecl::interfaces::FormatFloat< Number >::prm_width [protected]

Definition at line 211 of file floats.hpp.

template<typename Number>
bool ecl::interfaces::FormatFloat< Number >::ready_to_format [protected]

Definition at line 218 of file floats.hpp.

template<typename Number>
ecl::Alignment ecl::interfaces::FormatFloat< Number >::tmp_alignment [protected]

Definition at line 213 of file floats.hpp.

template<typename Number>
ecl::FloatBase ecl::interfaces::FormatFloat< Number >::tmp_base [protected]

Definition at line 214 of file floats.hpp.

template<typename Number>
int ecl::interfaces::FormatFloat< Number >::tmp_precision [protected]

Definition at line 212 of file floats.hpp.

template<typename Number>
int ecl::interfaces::FormatFloat< Number >::tmp_width [protected]

Definition at line 211 of file floats.hpp.

template<typename Number>
Number ecl::interfaces::FormatFloat< Number >::value_ [protected]

Definition at line 219 of file floats.hpp.

template<typename Number>
int* ecl::interfaces::FormatFloat< Number >::width_ [protected]

Definition at line 215 of file floats.hpp.


The documentation for this class was generated from the following file:


ecl_formatters
Author(s): Daniel Stonier (d.stonier@gmail.com)
autogenerated on Thu Jan 2 2014 11:12:10