diff --git a/Sources/Plasma/CoreLib/plString.h b/Sources/Plasma/CoreLib/plString.h index 18e7b534..8004d32f 100644 --- a/Sources/Plasma/CoreLib/plString.h +++ b/Sources/Plasma/CoreLib/plString.h @@ -254,6 +254,13 @@ public: */ plString(const char *cstr, size_t size = STRLEN_AUTO) { IConvertFromUtf8(cstr, size); } + /** Construct a plString from a string literal. + * \note This constructor expects the input to be UTF-8 encoded. For + * conversion from ISO-8859-1 8-bit data, use FromIso8859_1(). + */ + template + plString(const char (&literal)[_Sz]) { IConvertFromUtf8(literal, _Sz); } + /** Copy constructor. */ plString(const plString ©) : fUtf8Buffer(copy.fUtf8Buffer) { } @@ -269,6 +276,10 @@ public: /** Assignment operator. Same as plString(const char *). */ plString &operator=(const char *cstr) { IConvertFromUtf8(cstr, STRLEN_AUTO); return *this; } + /** Assignment operator. Same as plString(const char (&)[_Sz]). */ + template + plString &operator=(const char (&literal)[_Sz]) { IConvertFromUtf8(literal, _Sz); return *this; } + /** Assignment operator. Same as plString(const plString &). */ plString &operator=(const plString ©) { fUtf8Buffer = copy.fUtf8Buffer; return *this; }