149 void Reset(const
char* str =
nullptr) noexcept;
168 std::
size_t Length() const noexcept;
176 char operator[](
std::
size_t index) const noexcept;
183 inline explicit operator
bool() const noexcept {
184 return static_cast<const char*
>(*this) !=
nullptr;
199 explicit operator const char*()
const noexcept;
206 inline explicit operator std::string_view() const noexcept {
207 const char* text =
static_cast<const char*
>(*this);
208 return text ? std::string_view(text) : std::string_view();
215 inline operator std::string()
const {
216 const char* text =
static_cast<const char*
>(*this);
217 return text ? std::string(text) : std::string();
225 inline std::ostream&
operator<<(std::ostream& stream)
const {
226 const char* text =
static_cast<const char*
>(*this);
252 return !(*
this == other);
268 return !(*
this == str);
295 static const char* Duplicate(
const char* str)
noexcept;
305 return text.operator<<(stream);
349 const char* raw =
static_cast<const char*
>(text);
352 return std::hash<std::string_view>{}(raw);
Owned NUL-terminated buffer, safe to use across a DLL boundary.
Definition cstring.hxx:89
std::strong_ordering operator<=>(const char *str) const noexcept
Content order against a C string.
bool operator==(const char *str) const noexcept
Content equality with a C string.
std::strong_ordering operator<=>(const CString &other) const noexcept
Content order.
bool operator!=(const char *str) const noexcept
Content inequality with a C string.
Definition cstring.hxx:267
std::ostream & operator<<(std::ostream &stream) const
Writes the text to stream.
Definition cstring.hxx:225
bool operator==(const CString &other) const noexcept
Content equality.
void swap(CString &other) noexcept
Swaps buffers with other.
bool operator!=(const CString &other) const noexcept
Content inequality.
Definition cstring.hxx:251
CString() noexcept
Empty (null) buffer.
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::CString &text) const noexcept
Hashes text.
Definition cstring.hxx:348
#define STORMBYTE_PUBLIC
Definition visibility.h:52