
From: Dean Michael Berris <mikhailberis@gmail.com> On Thu, Jan 27, 2011 at 8:16 PM, Artyom <artyomtnk@yahoo.com> wrote:
From: Dean Michael Berris <mikhailberis@gmail.com> On Thu, Jan 27, 2011 at 7:06 PM, Artyom <artyomtnk@yahoo.com> wrote:
Then don't call this thread [boost][string] proposal and don't call it boost::string
Why not? If it's different from std::string why wouldn't boost::string be a proper name?
Because as you mentioned below, many things from boost go to std, i.e. shared_ptr, function, bind and many others.
So it shouldn't be "string" as C++ already has one.
By this logic, interprocess' containers shouldn't be called vector, map, list, set, unordered_set, unordered_map. That doesn't make sense.
They are intendant to remain in interprocess namespace and have same functionality as standard list/set etc. This is different case.
Who gave you the monopoly on what `string` should mean? :P
Nobody gave me a monopoly, however such monopoly had given to C++ standard committee that had defined what string means in C++'s standard namespace.
It is fine have other strings but IMHO they should not be called boost::string.
And IMHO std::string's current interface can be deprecated by a suitably convinced standard committee.
It's like std::auto_ptr being deprecated along with the interfaces of dozens of other libraries. If boost::string is a really well implemented string that does things really really well, then I don't see why std::string can't be deprecated in favor of an arguably better but certainly different string paradigm.
Deprecated, not changed in backward incompatible way.
1. Make it fully backward compatible with std::string 2. Call it by different name.
Nope, I disagree with both.
std::string can be deprecated if the standards body agree that there's cause for it to be deprecated. And the different name is frankly just unnecessary.
It may be deprecated, not removed become broken. Personally I don't think that immutability worth breaking 95% of existing code. So just call it boost::text, boost::unicode_string, boost::immutable_string or whatever you want, but boost::string is bad idea. Artyom