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();
117 operator std::string()
const
119 return to_string(*
this);
129 inline std::ostream& operator<<(std::ostream& os,
str_ref v)
131 return os.write(v.data(), v.size());
134 inline std::string to_string(
str_ref v)
136 return std::string(v.data(), v.size());