Class StringRef

Class Documentation

class Catch::StringRef

A non-owning string class (similar to the forthcoming std::string_view) Note that, because a StringRef may be a substring of another string, it may not be null terminated. c_str() must return a null terminated string, however, and so the StringRef will internally take ownership (taking a copy), if necessary. In theory this ownership is not externally visible - but it does mean (substring) StringRefs should not be shared between threads.

Public Types

using size_type = std::size_t

Public Functions

inline StringRef() noexcept
inline StringRef(StringRef const &other) noexcept
inline StringRef(StringRef &&other) noexcept
StringRef(char const *rawChars) noexcept
inline StringRef(char const *rawChars, size_type size) noexcept
inline StringRef(std::string const &stdString) noexcept
inline ~StringRef() noexcept
inline auto operator=(StringRef const &other) noexcept -> StringRef&
operator std::string() const
void swap(StringRef &other) noexcept
auto operator==(StringRef const &other) const noexcept -> bool
auto operator!=(StringRef const &other) const noexcept -> bool
auto operator[](size_type index) const noexcept -> char
inline auto empty() const noexcept -> bool
inline auto size() const noexcept -> size_type
auto numberOfCharacters() const noexcept -> size_type
auto c_str() const -> char const*
auto substr(size_type start, size_type size) const noexcept -> StringRef
auto currentData() const noexcept -> char const*