183 void Reset(const
char* str =
nullptr) noexcept;
210 char operator[](const
Size& index) const noexcept;
217 inline explicit operator
bool() const noexcept {
218 return static_cast<const char*
>(*this) !=
nullptr;
233 explicit operator const char*()
const noexcept;
240 inline explicit operator std::string_view() const noexcept {
241 const char* text =
static_cast<const char*
>(*this);
242 return text ? std::string_view(text) : std::string_view();
250 const char* text =
static_cast<const char*
>(*this);
251 return text ? std::string(text) : std::string();
260 const char* text =
static_cast<const char*
>(*this);
286 return !(*
this == other);
302 return !(*
this == str);
329 static const char* Duplicate(
const char* str)
noexcept;
336 static const char* Duplicate(std::string_view sv)
noexcept;
346 return text.operator<<(stream);
393 const char* raw =
static_cast<const char*
>(text);
396 return std::hash<std::string_view>{}(raw);
Owned NUL-terminated buffer, safe to use across a DLL boundary.
Definition cstring.hxx:103
std::strong_ordering operator<=>(const CString &other) const noexcept
Content order.
bool operator!=(const CString &other) const noexcept
Content inequality.
Definition cstring.hxx:285
STORMBYTE_FORCE_INLINE std::ostream & operator<<(std::ostream &stream) const
Writes the text to stream.
Definition cstring.hxx:259
bool operator==(const CString &other) const noexcept
Content equality.
std::strong_ordering operator<=>(const char *str) const noexcept
Content order against a C string.
CString() noexcept
Empty (null) buffer.
void swap(CString &other) noexcept
Swaps buffers with other.
bool operator!=(const char *str) const noexcept
Content inequality with a C string.
Definition cstring.hxx:301
bool operator==(const char *str) const noexcept
Content equality with a C string.
Owned NUL-terminated wide buffer, safe to use across a DLL boundary.
Definition wcstring.hxx:104
Count of abstract units (uint64_t storage).
Definition size.hxx:105
void swap(CString &left, CString &right) noexcept
Swaps two buffers.
Definition cstring.hxx:374
bool operator==(const char *str, const CString &text) noexcept
Content equality.
Definition cstring.hxx:355
bool operator!=(const char *str, const CString &text) noexcept
Content inequality.
Definition cstring.hxx:365
std::ostream & operator<<(std::ostream &stream, const CString &text)
Writes text to stream.
Definition cstring.hxx:345
Root namespace of the StormByte suite.
Host-width-stable count (uint64_t), implicit only to std::size_t.
std::size_t operator()(const StormByte::Safe::CString &text) const noexcept
Hashes text.
Definition cstring.hxx:392
#define STORMBYTE_PUBLIC
Definition visibility.h:52