
-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Vladimir Batov Sent: 17 May 2014 00:54 To: boost@lists.boost.org Subject: Re: [boost] Boost review of the Convert library is ongoing
Vladimir Batov <vb.mail.247 <at> gmail.com> writes:
alex <alexhighviz <at> hotmail.com> writes: ... RE#4: The following is not compiling because of the way it uses enable_if in sstream.hpp.
boost::cstringstream_converter cnv; std::string str = boost::convert<std::string >::from("hello", cnv).value();
JUSTIFICATION: It's not compiling because applying std::stringstream to such a trivial type transformation is wasteful.
TODO: Add "char const*->std::string" transformation specialization to sstream-based converter.
Hmm, now I am not sure if I agree with my own "justification". :-) What if I want to apply std::sstream-provided formatting facilities to convert from, say, a "0xFF" hex string to a decimal string? Is it one of "char const*->std::string" transformations that you had in mind? I've never thought of this and never tried... will it even work with std::sstream?
That's not what I had in mind, and in the example you give I would expect that the user (not the library) first converts the hex string to a number and then the number to a decimal string. I just expected the converter to be able to convert any Input Streamable value(including string) into a string, and a string into an Output Streamable value (including string). That is how I understood the type requirements. The type-requirements page also seems to suggest that you can use the stringstream convert for (for instance) from float to int, but I assumed that is not intentional?