# FBB::X2a(3bobcat)

## X-to-ASCII conversions
(libbobcat-dev_6.11.00)

## 2005-2025

## NAME

FBB::X2a - Objects performing x-to-Ascii conversions

## SYNOPSIS

#include <bobcat/x2a>
Linking option: -lbobcat

## DESCRIPTION

FBB:X2a objects convert values of any (insertable) type to text. The returned text is automatically made available as a standard C++ string.

X2a was developed well before the std::to_string function became available. In many cases that latter function can often be used instead of using X2a: it is available for standard types. However, if another type must be used then X2a may still come in handy.

## NAMESPACE

FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace FBB.

## INHERITS FROM

std::ostringstream

## CONSTRUCTORS

- X2a(T const &value):
  In this constructor T may be any type that can be inserted into an o[string]stream.
- X2a(double value, size_t behind):
  Double value is truncated to behind digits behind the decimal dot. If a value doesn't occupy behind digits behind the decimal point, then missing digits are added as 0. For example, a value of 7.1, will be displayed as 7.10 if two digits behind the decimal dot are requested. A value of 7 will be displayed as 7.00.

- X2a(double value, size_t width, size_t behind, std::ios::fmtflags flags = std::ios::right):
  The value is displayed over width character positions, extending the amount if the value so requires. The converted value is placed right-aligned into the field of width characters.

The copy constructor and the copy assignment operator are available.

## STATIC MEMBER FUNCTION

- bool lastFail():
  This member returns true if the last conversion failed (i.e., the object's fail() member returned true and returns false otherwise). This member allows checks on the success of the extraction/conversion using anonymous A2x objects. The member also returns true when no conversions have as yet been performed.
  Note that this member is a thread-unsafe static member: in a multithreaded program locks may be required to ensure that the proper conversion result is inspected.

## MEMBER FUNCTIONS

All members of std::ostringstream are available, as FBB::X2a inherits from this class. In particular ostringstream::str() can be used to obtain the content of an X2a object's text buffer.

## OVERLOADED OPERATORS

- operator std::ostream &operator<<(std::ostream &ostr, X2a const &x2a):
  This conversion operator inserts the textual representation of the x2a parameter value into the provided ostream.
- operator std::string const() const:
  this conversion operator returns the information stored inside the FBB::X2a object.

## EXAMPLE

        string is(X2a(5));      // initializes `is' with "5"
        string ds(X2a(5.25));   // initializes `ds' with "5.25"

        cout << X2a(7.0 / 3, 4) << endl;
                                // display a value using 4 digits behind the
                                // decimal dot.
        cout << X2a(7.0 / 3, 8, 4) << endl;
                                // display a value over 8 positions, right
                                // adjusted, 4 digits behind the decimal dot.
        cout << X2a(7.0 / 3, 8, 4, std::ios::left) << endl;
                                // display a value over 8 positions, left
                                // adjusted, 4 digits behind the decimal dot.

## FILES

bobcat/x2a - defines the class interface

## SEE ALSO

bobcat(7), a2x(3bobcat)

## BUGS

none reported

## BOBCAT PROJECT FILES

- https://fbb-git.gitlab.io/bobcat/: gitlab project page;

Debian Bobcat project files:

- libbobcat6: debian package containing the shared library, changelog and copyright note;
- libbobcat-dev: debian package containing the static library, headers, manual pages, and developer info;

## BOBCAT

Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.

## COPYRIGHT

This is free software, distributed under the terms of the GNU General Public License (GPL).

## AUTHOR

Frank B. Brokken (f.b.brokken@rug.nl).