boost::cnv::strtol Converter

| Home | Libraries | People | FAQ | More

### boost::cnv::strtol Converter

The converter started as a deployment example (with the `std::strtol` family of functions as its conversion engine) and a part of the performance-test set. Surprisingly, the converter showed fairly decent all-around performance (see Converters Compared) and, consequently, has been rewritten and extended to provide additional conversion support and formatting. At the moment it seems to be a good choice with moderate formatting facilities and adequate performance.

It should be noted though that the converter is nowhere as mature as `boost::cnv::lexical_cast` or `boost::cnv::stream` and, therefore, bugs are to be expected.

#### Basic Deployment

    #include <boost/convert.hpp>
    #include <boost/convert/strtol.hpp>

    using std::string;
    using std::wstring;
    using boost::convert;

    struct boost::cnv::by_default : public boost::cnv::strtol {};

    string const    bad_str = "not an int";
    string const    std_str = "-11";
    char const* const c_str = "-12";

    BOOST_TEST( -1 == convert<int>(bad_str).value_or(-1));
    BOOST_TEST(-11 == convert<int>(std_str).value());
    BOOST_TEST(-12 == convert<int>(  c_str).value());