assignment op overloads for reverserange/moverange (c++ deletes them because of move ctor)
parent
0ac7bb4302
commit
35424dd248
34
octa/range.h
34
octa/range.h
|
@ -82,6 +82,23 @@ namespace octa {
|
|||
ReverseRange(const ReverseRange &it): p_range(it.p_range) {}
|
||||
ReverseRange(ReverseRange &&it): p_range(move(it.p_range)) {}
|
||||
|
||||
ReverseRange &operator=(const ReverseRange &v) {
|
||||
p_range = v.p_range;
|
||||
return *this;
|
||||
}
|
||||
ReverseRange &operator=(ReverseRange &&v) {
|
||||
p_range = move(v.p_range);
|
||||
return *this;
|
||||
}
|
||||
ReverseRange &operator=(const T &v) {
|
||||
p_range = v;
|
||||
return *this;
|
||||
}
|
||||
ReverseRange &operator=(T &&v) {
|
||||
p_range = forward<T>(v);
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool empty () const { return p_range.empty (); }
|
||||
size_t length() const { return p_range.length(); }
|
||||
|
||||
|
@ -128,6 +145,23 @@ namespace octa {
|
|||
MoveRange(const MoveRange &it): p_range(it.p_range) {}
|
||||
MoveRange(MoveRange &&it): p_range(move(it.p_range)) {}
|
||||
|
||||
MoveRange &operator=(const MoveRange &v) {
|
||||
p_range = v.p_range;
|
||||
return *this;
|
||||
}
|
||||
MoveRange &operator=(MoveRange &&v) {
|
||||
p_range = move(v.p_range);
|
||||
return *this;
|
||||
}
|
||||
MoveRange &operator=(const T &v) {
|
||||
p_range = v;
|
||||
return *this;
|
||||
}
|
||||
MoveRange &operator=(T &&v) {
|
||||
p_range = forward<T>(v);
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool empty () const { return p_range.empty (); }
|
||||
size_t length() const { return p_range.length(); }
|
||||
|
||||
|
|
|
@ -23,9 +23,6 @@ namespace octa {
|
|||
struct VectorRange: InputRangeBase<VectorRange<T>, RandomAccessRange, T> {
|
||||
VectorRange(): p_beg(nullptr), p_end(nullptr) {}
|
||||
VectorRange(const VectorRange &v): p_beg(v.p_beg), p_end(v.p_end) {}
|
||||
VectorRange(VectorRange &&v): p_beg(v.p_beg), p_end(v.p_end) {
|
||||
v.p_beg = v.p_end = nullptr;
|
||||
}
|
||||
VectorRange(T *beg, T *end): p_beg(beg), p_end(end) {}
|
||||
|
||||
bool operator==(const VectorRange &v) const {
|
||||
|
|
Loading…
Reference in New Issue