37 assign(&*c.begin(), &*c.end());
57 begin_ = end_ =
reinterpret_cast<T
>(
"");
60 void assign(
const void* b,
const void* e)
62 begin_ =
reinterpret_cast<T
>(b);
63 end_ =
reinterpret_cast<T
>(e);
66 void assign(
const void* b,
size_t sz)
68 begin_ =
reinterpret_cast<T
>(b);
89 return end() - begin();
94 return begin() == end();
97 operator std::string()
const
99 return to_string(*
this);
109 inline std::ostream& operator<<(std::ostream& os,
str_ref v)
111 return os.write(v.data(), v.size());
114 inline std::string to_string(
str_ref v)
116 return std::string(v.data(), v.size());