forked from OctaForge/libostd
modify StringRange in the same way
This commit is contained in:
parent
dafd5a17b5
commit
ad0521bdfa
|
@ -23,8 +23,6 @@ struct StringRangeBase: InputRange<
|
||||||
StringRangeBase<T>, FiniteRandomAccessRangeTag, T
|
StringRangeBase<T>, FiniteRandomAccessRangeTag, T
|
||||||
> {
|
> {
|
||||||
StringRangeBase(): p_beg(nullptr), p_end(nullptr) {}
|
StringRangeBase(): p_beg(nullptr), p_end(nullptr) {}
|
||||||
StringRangeBase(const StringRangeBase &v): p_beg(v.p_beg),
|
|
||||||
p_end(v.p_end) {}
|
|
||||||
StringRangeBase(T *beg, T *end): p_beg(beg), p_end(end) {}
|
StringRangeBase(T *beg, T *end): p_beg(beg), p_end(end) {}
|
||||||
StringRangeBase(T *beg, octa::Size n): p_beg(beg), p_end(beg + n) {}
|
StringRangeBase(T *beg, octa::Size n): p_beg(beg), p_end(beg + n) {}
|
||||||
/* TODO: traits for utf-16/utf-32 string lengths, for now assume char */
|
/* TODO: traits for utf-16/utf-32 string lengths, for now assume char */
|
||||||
|
@ -32,6 +30,11 @@ struct StringRangeBase: InputRange<
|
||||||
StringRangeBase(const StringBase<T> &s): p_beg(s.data()),
|
StringRangeBase(const StringBase<T> &s): p_beg(s.data()),
|
||||||
p_end(s.data() + s.size()) {}
|
p_end(s.data() + s.size()) {}
|
||||||
|
|
||||||
|
template<typename U>
|
||||||
|
StringRangeBase(const StringRangeBase<U> &v, octa::EnableIf<
|
||||||
|
octa::IsConvertible<U *, T *>::value, bool
|
||||||
|
> = true): p_beg(&v[0]), p_end(&v[v.size()]) {}
|
||||||
|
|
||||||
StringRangeBase &operator=(const StringRangeBase &v) {
|
StringRangeBase &operator=(const StringRangeBase &v) {
|
||||||
p_beg = v.p_beg; p_end = v.p_end; return *this;
|
p_beg = v.p_beg; p_end = v.p_end; return *this;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue