FBB::A2x(3) Objects performing ascii-to-x (anything) conversions

SYNOPSIS

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

DESCRIPTION

FBB::A2x objects offer the C++ equivalent of the standard C conversion functions atoi(3), atol(3), atof(3) etc. A2x objects generalize these C functions to any type that can be extracted from an istream object. Since FBB::A2x represents the object-variant of the C functions, and is therefore type-safe and extensible, their use is greatly preferred over using the standard C functions.

NAMESPACE

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

INHERITS FROM

std::istringstream

CONSTRUCTORS

  • A2x():
    This constructor constructs an empty A2x object. No information can be converted from a thus constructed A2x object.
  • A2x(char const *text):
    This constructor stores text. If text represents a textual value of some type, the A2x object may be used to initialize or assign this value to a variable of that particular type. Extraction, however is also still possible.
  • A2x(std::string const &str):
    This constructor stores the text contained in str. If this text represents a textual value of some type, the A2x object may be used to initialize or assign this value to a variable of that particular type. Extraction is also still possible. The copy constructor is 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 FUNCTION

All members of the istringstream class are available.

  • Type to():
    This member returns any type Type supporting extractions from i[string]streams. If the extraction fails, the A2x object's good() member will return false, and the Type's default value is returned. This operator was implemented as a template member function. There is also a type conversion operator available (see below), but the member function variant may be preferred over the conversion operator in situations where explicit disambiguation is required (e.g., in cases where a conversion has no obvious type solution such as direct insertions) An example is provided in the EXAMPLE section below.

OVERLOADED OPERATORS

  • operator Type():
    Conversion to any type Type supporting extractions from i[string]streams. If the extraction fails, the A2x object's good() member will return false, and the Type's default value is returned. This operator was implemented as a template member function.
  • istream &operator>>(istream &, Type &):
    Extraction to any type Type supporting extractions from i[string]streams. If the extraction fails, the A2x object's good() member will return false, and the Type's default value is returned (this facility is implied by the fact that this class inherits from istringstream, but it's probably useful to stress that the extraction operation is still available).
  • A2x &operator=(char const *):
    Stores new text in the A2x object, resets the status flags to ios::good. If a 0-pointer is passed, an empty string is stored.
  • A2x &operator=(std::string const &):
    Stores the text stored in the std::string argument in the A2x object, resets the status flags to ios::good.
  • A2x &operator=(A2x const &):
    The standard overloaded assignment operator is available

EXAMPLE

    int x = A2x("12");
    A2x a2x("12.50");
    double d;
    d = a2x;
    a2x = "err";
    d = a2x;        // d now 0
    a2x = " a";
    char c = a2x;   // c now 'a'
                    // explicit conversion to `double'
    cout << A2x("12.4").to<double>() << endl;
        

FILES

bobcat/a2x - defines the class interface

BUGS

None Reported.

DISTRIBUTION FILES

  • bobcat_4.02.00-x.dsc: detached signature;
  • bobcat_4.02.00-x.tar.gz: source archive;
  • bobcat_4.02.00-x_i386.changes: change log;
  • libbobcat1_4.02.00-x_*.deb: debian package holding the libraries;
  • libbobcat1-dev_4.02.00-x_*.deb: debian package holding the libraries, headers and manual pages;
  • http://sourceforge.net/projects/bobcat: public archive location;

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 ([email protected]).