Lines Matching refs:base
237 ImmutableString() : len(0), base("") {}
239 : len(slen), base(copystr(s, s + len)) {}
241 : len(strlen(s)), base(copystr(s, s + len)) {}
243 : len(s.size()), base(copystr(std::begin(s), std::end(s))) {}
246 : len(std::distance(first, last)), base(copystr(first, last)) {}
248 : len(other.len), base(copystr(std::begin(other), std::end(other))) {}
250 : len{std::exchange(other.len, 0)}, base{std::exchange(other.base, "")} {}
253 delete[] base;
262 delete[] base;
265 base = copystr(std::begin(other), std::end(other));
273 delete[] base;
276 base = std::exchange(other.base, "");
284 const_iterator begin() const { return base; };
285 const_iterator cbegin() const { return base; };
287 const_iterator end() const { return base + len; };
288 const_iterator cend() const { return base + len; };
291 return const_reverse_iterator{base + len};
294 return const_reverse_iterator{base + len};
297 const_reverse_iterator rend() const { return const_reverse_iterator{base}; }
298 const_reverse_iterator crend() const { return const_reverse_iterator{base}; }
300 const char *c_str() const { return base; }
303 const_reference operator[](size_type pos) const { return *(base + pos); }
316 const char *base;
389 constexpr StringRef() : base(""), len(0) {}
390 explicit StringRef(const std::string &s) : base(s.c_str()), len(s.size()) {}
392 : base(s.c_str()), len(s.size()) {}
393 explicit StringRef(const char *s) : base(s), len(strlen(s)) {}
394 constexpr StringRef(const char *s, size_t n) : base(s), len(n) {}
397 : base(reinterpret_cast<const char *>(s)), len(n) {}
400 : base(reinterpret_cast<const char *>(&*first)),
404 : base(reinterpret_cast<const char *>(first)),
418 constexpr const_iterator begin() const { return base; };
419 constexpr const_iterator cbegin() const { return base; };
421 constexpr const_iterator end() const { return base + len; };
422 constexpr const_iterator cend() const { return base + len; };
425 return const_reverse_iterator{base + len};
428 return const_reverse_iterator{base + len};
431 const_reverse_iterator rend() const { return const_reverse_iterator{base}; }
432 const_reverse_iterator crend() const { return const_reverse_iterator{base}; }
434 constexpr const char *c_str() const { return base; }
438 return *(base + pos);
441 std::string str() const { return std::string(base, len); }
443 return reinterpret_cast<const uint8_t *>(base);
447 const char *base;