Boost logo

Boost :

Subject: Re: [boost] to_string(v)
From: Schrader, Glenn - 1002 - MITLL (gschrad_at_[hidden])
Date: 2011-09-30 10:29:47


On Thu, 2011-09-29 at 20:46 +0400, Antony Polukhin wrote:
> 2011/9/29 Olaf van der Spek <ml_at_[hidden]>:
> > Some time ago (2002) there was talk about a to_string function. Did
> > this ever materialize?
>
> Functions to_string and to_wstring are part of the upcoming C++0x
> standard. However, there is no to_u16string and to_u32string.
>
> > "to_string(5)" is a lot shorter than "lexical_cast<std::string>(5)".
> >
> > Likewise for "to_int("5")".
>
> As for me, it is easier to remember one function lexical_cast, than
> tens of of them: stoi, stoll, stof, to_string, to_wstring, stod...
> Also, it is hard to use those functions in generic programming.
>
> Best regards,
> Antony Polukhin

Instead of a static set of functions each named to indicate the
conversion how about wrapping the destination value with a helper class
that can generically convert a string into the value? Something
something like the example below.

--glenn

<example begins>

template <class T> class strtoT;

// quick non-generic conversion example for int
template <> class strtoT<int> {
    int& t;
public:
    strtoT(int &_t) : t(_t) { }
    const std::string& operator=(const std::string& s) {
        t = atoi( s.c_str() );
    }
};

template<class T>
strtoT<T> from_string(T& v) { return strtoT<T>(v); }

int main( )
{
    int val=0;
    from_string(val) = std::string("456");
    std::cout << val << std::endl;
}


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