Why are there so many string classes in the face of std::string?
<p>It seems to me that many bigger C++ libraries end up creating their own string type. In the client code you either have to use the one from the library (<code>QString</code>, <code>CString</code>, <code>fbstring</code> etc., I'm sure anyone can name a few) or keep converting between the standard type and the one the library uses (which most of the time involves at least one copy). </p>

<p>So, is there a particular misfeature or something wrong about <code>std::string</code> (just like <code>auto_ptr</code> semantics were bad)? Has it changed in C++11?</p>
