muu::string_param class

A move-only string type-eraser capable of representing any UTF string.

Constructors, destructors, conversion operators

operator bool() const explicit noexcept
Returns true if the string_param contains a value of non-zero length.
template <typename T>
string_param(T&& string_viewable) noexcept
Constructs a non-owning string_param from a string-viewable object.
string_param(string_param&& other) noexcept
Move constructor.
~string_param() noexcept
Destructor.

Public functions

auto empty() const -> bool noexcept
Returns true if the string_param does not contain a value, or it has a length of zero.
auto operator=(string_param&& rhs) -> string_param& noexcept
Move-assignment operator.
auto owning() const -> bool noexcept
Returns true if the string_param is not empty and owns the payload string (rather than simply being a view).
auto trim() & -> string_param& noexcept
Trims leading and trailing whitespace from the payload string.
auto trim() && -> string_param&& noexcept
Trims leading and trailing whitespace from the payload string (rvalue overload).

char16_t

operator std::u16string() && noexcept
Moves the string_param's payload into a std::u16string.
operator std::u16string_view() const & noexcept
Returns a std::u16string_view of the string_param's payload.
operator std::u16string_view() const && explicit noexcept
Returns a std::u16string_view of the string_param's payload (rvalue overload).
string_param(std::u16string_view str) noexcept
Constructs a non-owning string_param from a UTF-16 string view.
string_param(const std::u16string& str) noexcept
Constructs a non-owning string_param from a UTF-16 string.
string_param(const char16_t* str, size_t len) noexcept
Constructs a non-owning string_param from a pointer to a UTF-16 string and a length.
string_param(const char16_t* str) noexcept
Constructs a non-owning string_param from a pointer to a UTF-16 string.
string_param(std::u16string&& str) noexcept
Constructs an owning string_param from a UTF-16 string.

char32_t

operator std::u32string() && noexcept
Moves the string_param's payload into a std::u32string.
operator std::u32string_view() const & noexcept
Returns a std::u32string_view of the string_param's payload.
operator std::u32string_view() const && explicit noexcept
Returns a std::u32string_view of the string_param's payload (rvalue overload).
string_param(std::u32string_view str) noexcept
Constructs a non-owning string_param from a UTF-32 string view.
string_param(const std::u32string& str) noexcept
Constructs a non-owning string_param from a UTF-32 string.
string_param(const char32_t* str, size_t len) noexcept
Constructs a non-owning string_param from a pointer to a UTF-32 string and a length.
string_param(const char32_t* str) noexcept
Constructs a non-owning string_param from a pointer to a UTF-32 string.
string_param(std::u32string&& str) noexcept
Constructs an owning string_param from a UTF-32 string.

char8_t

operator std::u8string() && noexcept
Moves the string_param's payload into a std::u8string.
operator std::u8string_view() const & noexcept
Returns a std::u8string_view of the string_param's payload.
operator std::u8string_view() const && explicit noexcept
Returns a std::u8string_view of the string_param's payload (rvalue overload).
string_param(std::u8string_view str) noexcept
Constructs a non-owning string_param from a UTF-8 string view.
string_param(const std::u8string& str) noexcept
Constructs a non-owning string_param from a UTF-8 string.
string_param(const char8_t* str, size_t len) noexcept
Constructs a non-owning string_param from a pointer to a UTF-8 string and a length.
string_param(const char8_t* str) noexcept
Constructs a non-owning string_param from a pointer to a UTF-8 string.
string_param(std::u8string&& str) noexcept
Constructs an owning string_param from a UTF-8 string.

char

operator std::string() && noexcept
Moves the string_param's payload into a std::string.
operator std::string_view() const & noexcept
Returns a std::string_view of the string_param's payload.
operator std::string_view() const && explicit noexcept
Returns a std::string_view of the string_param's payload (rvalue overload).
string_param() noexcept
Constructs an empty string_param.
string_param(std::string_view str) noexcept
Constructs a non-owning string_param from a UTF-8 string view.
string_param(const std::string& str) noexcept
Constructs a non-owning string_param from a UTF-8 string.
string_param(const char* str, size_t len) noexcept
Constructs a non-owning string_param from a pointer to a UTF-8 string and a length.
string_param(const char* str) noexcept
Constructs a non-owning string_param from a pointer to a UTF-8 string.
string_param(std::string&& str) noexcept
Constructs an owning string_param from a UTF-8 string.

wchar_t

operator std::wstring() && noexcept
Moves the string_param's payload into a std::wstring.
operator std::wstring_view() const & noexcept
Returns a std::wstring_view of the string_param's payload.
operator std::wstring_view() const && explicit noexcept
Returns a std::wstring_view of the string_param's payload (rvalue overload).
string_param(std::wstring_view str) noexcept
Constructs a non-owning string_param from a UTF wide string view.
string_param(const std::wstring& str) noexcept
Constructs a non-owning string_param from a UTF wide string.
string_param(const wchar_t* str, size_t len) noexcept
Constructs a non-owning string_param from a pointer to a UTF wide string and a length.
string_param(const wchar_t* str) noexcept
Constructs a non-owning string_param from a pointer to a UTF wide string.
string_param(std::wstring&& str) noexcept
Constructs an owning string_param from a UTF wide string.

Friends

template <typename Char, typename Traits>
auto operator<<(std::basic_ostream<Char, Traits>& lhs, const string_param& rhs) -> std::basic_ostream<Char, Traits>&
Writes the string_param to a text stream.