All Classes Namespaces Functions Variables Enumerations Properties Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
Catch::StringRef Class Reference

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. More...

#include <catch.hpp>

Public Types

using size_type = std::size_t
 

Public Member Functions

 StringRef (StringRef const &other) noexcept
 
 StringRef (StringRef &&other) noexcept
 
 StringRef (char const *rawChars) noexcept
 
 StringRef (char const *rawChars, size_type size) noexcept
 
 StringRef (std::string const &stdString) noexcept
 
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
 
auto empty () const noexcept-> bool
 
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 *
 

Private Member Functions

void takeOwnership ()
 
auto isOwned () const noexcept-> bool
 
auto isSubstring () const noexcept-> bool
 

Private Attributes

char const * m_start
 
size_type m_size
 
char * m_data = nullptr
 

Static Private Attributes

static constexpr char const *const s_empty = ""
 

Friends

struct StringRefTestAccess
 

Detailed Description

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.

Definition at line 512 of file catch.hpp.


The documentation for this class was generated from the following file: