---
name: "x2a"
section: "3bobcat"
platform: "linux"
package: "libbobcat-dev"
version: "6.07.01-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/x2a"
---

# x2a(3bobcat)

Objects performing x-to-Ascii conversions

## 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

- o

  **X2a(T const &value)**:\
   In this constructor *T* may be any type that can be inserted into an *o\[string\]stream*.

- o

  **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.

-

  - o

  **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

- o

  **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

- o

  **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*.

- o

  **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)](/bobcat/7.md), [**a2x**(3bobcat)](/a2x/3bobcat.md)

## BUGS

none reported

## BOBCAT PROJECT FILES

- o

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

Debian Bobcat project files:

- o

  *libbobcat6*: debian package containing the shared library, changelog and copyright note;

- o

  *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**).
