Sorry for not replying earlier, I forgot about this message.

ucs[0] should be OK for an empty string, as that will still refer to the
terminating NUL byte at the end of the string. Note that an empty string is
differetn from a NULL pointer (the former is a valid string, and the other
is not).

Regards,
Elias

On 1 August 2017 at 19:04, Juergen Sauermann <juergen.sauerm...@t-online.de>
wrote:

> Hi Elias,
>
> I don't know what Ala'a did. However, looking at:
>
> */// return a UTF8 encoded std:string*
> *inline std::string to_string(const UCS_string & ucs)*
> *{*
> *    const UTF8_string utf(ucs);*
> *    return string((const char *)&utf[0], utf.size());*
> *}*
>
> I am not sure what happens if string *ucs* is empty (in that case *ucs[0]
> *does not
> exist and may be makes *&**ucs[0]* also 0. The std::string constructor
> then looks
> for the terminating 0 character in a 0-pointer. Using *UTF8:string::c_str*
> *()* might
> be better.
>
> Also converting a UCS or UTF8 string to *std::string* just for outputting
> it with << may be
> an overkill, since *ostream << *often (read: after *#include
> "PrintOperator.hh*") understands
> UCF and UCS strings directly.
>
> /// Jürgen
>
>
> On 07/31/2017 02:31 AM, Elias Mårtenson wrote:
>
> Can you tell me exactly what you are doing in order to reproduce the
> problem?
>
> Regards,
> Elias
>
>
>

Reply via email to