146 void Reset(const
wchar_t* str =
nullptr) noexcept;
165 std::
size_t Length() const noexcept;
173 wchar_t operator[](
std::
size_t index) const noexcept;
180 inline explicit operator
bool() const noexcept {
181 return static_cast<const wchar_t*
>(*this) !=
nullptr;
196 explicit operator const wchar_t*()
const noexcept;
203 inline explicit operator std::wstring_view() const noexcept {
204 const wchar_t* text =
static_cast<const wchar_t*
>(*this);
205 return text ? std::wstring_view(text) : std::wstring_view();
212 inline operator std::wstring()
const {
213 const wchar_t* text =
static_cast<const wchar_t*
>(*this);
214 return text ? std::wstring(text) : std::wstring();
222 inline std::wostream&
operator<<(std::wostream& stream)
const {
223 const wchar_t* text =
static_cast<const wchar_t*
>(*this);
249 return !(*
this == other);
265 return !(*
this == str);
280 std::strong_ordering
operator<=>(
const wchar_t* str)
const noexcept;
285 const wchar_t* m_data;
292 static const wchar_t* Duplicate(
const wchar_t* str)
noexcept;
302 return text.operator<<(stream);
346 const wchar_t* raw =
static_cast<const wchar_t*
>(text);
349 return std::hash<std::wstring_view>{}(raw);
Owned NUL-terminated wide buffer, safe to use across a DLL boundary.
Definition wcstring.hxx:86
bool operator!=(const wchar_t *str) const noexcept
Content inequality with a C wide string.
Definition wcstring.hxx:264
bool operator!=(const WCString &other) const noexcept
Content inequality.
Definition wcstring.hxx:248
bool operator==(const wchar_t *str) const noexcept
Content equality with a C wide string.
void swap(WCString &other) noexcept
Swaps buffers with other.
std::strong_ordering operator<=>(const WCString &other) const noexcept
Content order.
WCString() noexcept
Empty (null) buffer.
std::wostream & operator<<(std::wostream &stream) const
Writes the text to stream.
Definition wcstring.hxx:222
bool operator==(const WCString &other) const noexcept
Content equality.
std::strong_ordering operator<=>(const wchar_t *str) const noexcept
Content order against a C wide string.
Root namespace of the StormByte suite.
bool operator!=(const char *str, const CString &text) noexcept
Content inequality.
Definition cstring.hxx:324
std::ostream & operator<<(std::ostream &stream, const CString &text)
Writes text to stream.
Definition cstring.hxx:304
void swap(CString &left, CString &right) noexcept
Swaps two buffers.
Definition cstring.hxx:333
bool operator==(const char *str, const CString &text) noexcept
Content equality.
Definition cstring.hxx:314
std::size_t operator()(const StormByte::WCString &text) const noexcept
Hashes text.
Definition wcstring.hxx:345
#define STORMBYTE_PUBLIC
Definition visibility.h:52