| 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 : boost::cnv::strtol {};

    string const     bad_str = "not an int";
    string const     std_str = "-11";
    char const* const  c_str = "-12";
    boost::string_view v_str = boost::string_view(c_str, 2);

    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());
    BOOST_TEST( -1 == convert<int>(  v_str).value_or(0));