31 : dat(s), siz(len) {
if (!dat) assert(siz == 0); }
33 : dat(first), siz(last - first) {
if (!dat) assert(siz == 0); }
38 auto begin()
const {
return dat; }
39 auto end()
const {
return dat + siz; }
45 bool empty()
const {
return siz == 0; }
55 char front()
const {
return *dat; }
56 char back()
const {
return *(dat + siz - 1); }
57 const char*
data()
const {
return dat; }
61 std::string
str()
const;
101 const char* dat =
nullptr;
105 static_assert(std::is_trivially_destructible<string_view>::value,
"");
106 static_assert(std::is_trivially_copyable<string_view>::value,
"");
107 static_assert(std::is_trivially_copy_constructible<string_view>::value,
"");
108 static_assert(std::is_trivially_move_constructible<string_view>::value,
"");
109 static_assert(std::is_trivially_assignable<string_view, string_view>::value,
"");
110 static_assert(std::is_trivially_copy_assignable<string_view>::value,
"");
111 static_assert(std::is_trivially_move_assignable<string_view>::value,
"");
const char * data() const
unsigned fast_stou(string_view s)
bool starts_with(string_view x) const
string_view(const char *s, size_type len)
size_type find_first_of(string_view s) const
bool operator>=(string_view x, string_view y)
std::ptrdiff_t difference_type
bool operator>(string_view x, string_view y)
bool operator==(string_view x, string_view y)
size_type find_last_of(string_view s) const
bool ends_with(string_view x) const
std::ostream & operator<<(std::ostream &os, string_view s)
static const size_type npos
int compare(string_view x) const
void remove_prefix(size_type n)
constexpr size_t strlen(const char *s) noexcept
size_type find(string_view s) const
bool operator<(string_view x, string_view y)
bool operator<=(string_view x, string_view y)
std::reverse_iterator< const_iterator > const_reverse_iterator
size_type rfind(string_view s) const
This class implements a (close approximation) of the std::string_view class.
string_view(const std::string &s)
char operator[](size_type i) const
string_view(const char *s)
string_view substr(size_type pos, size_type n=npos) const
const char * const_iterator
string_view(const char *first, const char *last)
bool operator!=(string_view x, string_view y)
void remove_suffix(size_type n)