
David Abrahams <dave <at> boost-consulting.com> writes:
Was there any discussion of the to_string(x) and string_to<T>(x) alternative?
I am using an interface which works like this to_string(T x); to_string(T x, const locale& l); // The following function always use the classic locale // this allows easy specializations for trivial cases like int to_string_classic(T x); from_string(SequenceT s); from_string(SequenceT s, const locale& l); from_string_classic(SequenceT s); from_string(SequenceT s, T def); // default value = no throw from_string(SequenceT s, const locale& l, T def); // format is applied to stream before value is extracted // e.g. double x = from_string(str, noskipws); // int x = from_string(str, hex); from_string(SequenceT s, FormatT format); ... On top of this I have also implemented the following: 1. tuple streaming without separators which means I can do: to_string(make_tuple(hex, setw(10), right, 123)); 2. a class that holds the stream to avoid creating it or specifying locale and formats every time. string_conversion conv(mylocale, hex); for (int ii = 0; ii < 10; ++ii) str += conv.to_string(ii);