Zitat von
Olli:
Das ist putzig. Schonmal versucht operator+= und operator+ für WideString zu überladen?
Geht auch wieder nur, wenn die Zuweisung ohne das
Unicode-Literal passiert.
Edit: Andersrum gedacht. Wenn man der Übergabe des Literals ein Cast voranstellt, wird die Behandlung als Stringarray umgesetzt. Dem
Code:
WideString s1 = (WideString)L"\x043F\x043E\x0442\x0435\x0440\x0438\x0442\x0435\x043F\x043B\x0430"
L"\x043F\x043E\x0442\x0435\x0440\x0438\x0442\x0435\x043F\x043B\x0430"
L"\x043F\x043E\x0442\x0435\x0440\x0438\x0442\x0435\x043F\x043B\x0430"
L"\x043F\x043E\x0442\x0435\x0440\x0438\x0442\x0435\x043F\x043B\x0430"
L"\x043F\x043E\x0442\x0435\x0440\x0438\x0442\x0435\x043F\x043B\x0430"
L"\x043F\x043E\x0442\x0435\x0440\x0438\x0442\x0435\x043F\x043B\x0430"
L"\x043F\x043E\x0442\x0435\x0440\x0438\x0442\x0435\x043F\x043B\x0430";
läßt sich dann ein
Code:
s1 += (WideString)L"\x0472"
L"\x043F\x043E\x0442\x0435\x0440\x0438\x0442\x0435\x043F\x043B\x0430";
hinterherschicken.
Mir ist zwar nicht klar, warum es so läuft, es scheint es aber sauberer zu laufen. Die Versuche, der Literalvariante etwas anzuhängen wurde beim Debugging von häufig aufpoppenden CPU-Fenstern begleitet...
Grüße, Messie