Remove unsafe Slice operators.
GitOrigin-RevId: 38555a755fd4252ccc25398340b7fcab542d9f3c
This commit is contained in:
parent
a20168bdf9
commit
b5e95821ad
@ -85,6 +85,18 @@ class Slice {
|
|||||||
constexpr Slice(const char (&a)[N]) : s_(a), len_(N - 1) {
|
constexpr Slice(const char (&a)[N]) : s_(a), len_(N - 1) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Slice &operator=(string &&s) = delete;
|
||||||
|
|
||||||
|
template <size_t N>
|
||||||
|
constexpr Slice &operator=(char (&a)[N]) = delete;
|
||||||
|
|
||||||
|
template <size_t N>
|
||||||
|
constexpr Slice &operator=(const char (&a)[N]) {
|
||||||
|
s_ = a;
|
||||||
|
len_ = N - 1;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
bool empty() const;
|
bool empty() const;
|
||||||
size_t size() const;
|
size_t size() const;
|
||||||
|
|
||||||
@ -170,6 +182,18 @@ class CSlice : public Slice {
|
|||||||
CSlice() : CSlice("") {
|
CSlice() : CSlice("") {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CSlice &operator=(string &&s) = delete;
|
||||||
|
|
||||||
|
template <size_t N>
|
||||||
|
constexpr CSlice &operator=(char (&a)[N]) = delete;
|
||||||
|
|
||||||
|
template <size_t N>
|
||||||
|
constexpr CSlice &operator=(const char (&a)[N]) {
|
||||||
|
s_ = a;
|
||||||
|
len_ = N - 1;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
const char *c_str() const {
|
const char *c_str() const {
|
||||||
return begin();
|
return begin();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user