About Strings

Enrico Weigelt enrico.weigelt at vnc.biz
Mon Mar 19 09:31:32 PDT 2012

> the historical reason is that std::string is part of the C++
> standard
> library, and implementations of that generally only started to
> become
> actually usable on all platforms in the early 2000s.
Okay, that shouldn't be an real argument, when we're talking about
refactoring anyways ;-)
> the other reason is that std::string isn't particularly well suited
> to
> storing Unicode, because all of the operations on it are defined in
> terms of elements of an array.  so when using std::string accessing
> UTF-8 characters is both cumbersome and error-prone, while using
> std::wstring is not an option at all because it is based on
> wchar_t,
> and
> the geniuses didn't define whether that is 16bit or 32bit, so it's
> _completely_ useless in practice.  the only option really would be
> to
> use something like std;:basic_string<uint32_t>, but that wastes a
> lot
> of
> space in the common case, or std::basic_string<uint16_t>, which is
> just
> as stupid as our existing rtl::OUString.
hmm, already guessed that ;-o

Wouldn't this call for an extension of std::string (derived class)
or an generic helper class ?
Does anyone know whether libraries like boost have a good
solution for that ?

Mit freundlichen Grüßen / Kind regards

Enrico Weigelt
VNC - Virtual Network Consult GmbH

Äußere Bayreuther Str. 55, D - 90409 Nürnberg
Tel: +49 911 72303-30
Fax: +49 911 72303-50

enrico.weigelt at vnc.biz; www.vnc.de

More information about the LibreOffice mailing list