Re: [boost] Review Request: Introduction of boost::string namespace, and string-conversion functions

On Fri, Feb 13, 2009 at 07:15 +1000, Vladimir Batov <batov@people.net.au> wrote:
2. The name of the namespace.
People largely seem content with "boost::string".
I think that is a pretty bold statement as your proposal for boost::string was initially posted merely 26 hours earlier. Perhaps this library should be bundled with the Boost String Algorithms Library, and reside in the boost::algorithm namespace.
3. Naming of the conversion functions.
The "to/from/is" set seems to sit well with the majority of people.
I really like the compactness of to/from/is, but something about it feels strange. It feels a bit backward as boost::string::to converts from a string, and boost::string::from converts to a string. Perhaps parse and to_string (or construct). namespace bsa = boost::algorithm; // or boost::string, or boost::convert, or boost::text, or boost. int i_from_s = bsa::parse<int>(s); std::string s_from_i = bsa::to_string<std::string>(i);
8. Throw/No-Throw Behavior.
You might have noticed that the interface above *never* throws anything on failure.
template<class T, class String> boost::string::value<T> boost::string::to(String const&, T const& =T()) throw();
template<class T> boost::string::value<std::string> boost::string::from(T const&) throw();
I don't think it is a good idea to have the nothrow exception specification on either boost::string::from nor boost::string::to as the underlying mechanism (iostreams I would believe) or copy-construction of T or construction of String could throw exceptions. Nothrow simply cannot be guaranteed. Regards, Anders Dalvander

People largely seem content with "boost::string".
I think that is a pretty bold statement as your proposal for boost::string was initially posted merely 26 hours earlier.
I've come to realize that now.
Perhaps this library should be bundled with the Boost String Algorithms Library, and reside in the boost::algorithm namespace.
My original understanding was the namespace meant beyond just algorithms. ...
I don't think it is a good idea to have the nothrow exception specification on either boost::string::from nor boost::string::to as the underlying mechanism (iostreams I would believe) or copy-construction of T or construction of String could throw exceptions. Nothrow simply cannot be guaranteed.
It seems obvious once you mentioned that. Quite embarrassing. Thanks, V.
participants (2)
-
Anders Dalvander
-
Vladimir Batov