Boost logo

Boost :

From: Roberto Hinz (robhz786_at_[hidden])
Date: 2019-06-08 23:15:37


On Sat, Jun 8, 2019 at 9:53 AM Helmut Zeisel <HZ2012_at_[hidden]> wrote:

> Actually I did not check your library, but I would be interested in a
> formatting library that is not based on functions, but on function objects.
>
> The usage would not be something like
>
> std::string s1 = to_string("base10", 15);
> std::string s2 = to_string("base16", 42);
>
> but
>
> stringifier dec;
> dec.set_base(10);
> std::string s1=hex(15);
> stringifier hex;
> hex.set_base(16);
> std::string s2=hex(42);
>
>
To format values in Boost.Stringify, one does like this, for example:

    namespace strf = boost::stringify;
    int v = 255;
    std::string s = strf::to_string(v, " in hexadecimal is ", strf::hex(v));
    assert(s == "255 in hexadecimal is ff");

So could maybe lambdas solve your need ?

    auto hex = [](int v){return strf::to_string(strf::hex(v)); };
    auto dec = [](int v){return strf::to_string(v); };

    auto s1 = hex(15);
    auto s2 = dec(42);
    assert(s1 == "f");
    assert(s2 == "42");

> With a function object based interface, one could easily store and reuse
> different formating options in parallel.
>

Not clear to me what you mean by that. Could you explain better ?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk