
2009/2/18 Stewart, Robert <Robert.Stewart@sig.com>
On Wednesday, February 18, 2009 10:11 AM Scott McMurray wrote:
I'm just not convinced that convert(-1) tells me that I should be getting a std::string. I think it's equally (if not more) plausible that it should be some internationalizable string, be it std::wstring, std::u8string, or what.
It doesn't. I contend that should be convert(s, -1), where s is a std::string, or convert<std::string>(-1). Other, more verbose spellings are possible, of course.
Isn't it so that string to_string(T const&, Format) is about string generation, such as Spirit::Karma and boost::optional<T> from_string<T>(String) is about parsing, such as Spirit::Qi. and StringT convert_string<StringT>(String) about character conversion.
The name 'convert' doesn't tell me anything about strings, for all I know the following could be valid: convert<std::vector<int> >(std::list<float> >()) ; boost::to_string/boost::from_string would be very useful if made right, but seems this discussion is mostly about nifty expressions such as convert("5").to<int>(), which is close to unusable to me. How would the following trivial case be written? vector<int> v; std::vector<std::string> s; std::transform(v.begin(), v.end(), boost::bind(convert, _1, ????), std::back_inserter(s)); I've not seen much discussions on how to provide formatters, or how to extend with user-defined types. Isn't that important for such a library? / Christian