File tree Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -1484,9 +1484,14 @@ class iterator_wrapper {
1484
1484
return tmp;
1485
1485
}
1486
1486
1487
- iterator_wrapper & operator +=(difference_type i) {
1487
+ Derived & operator +=(difference_type i) {
1488
1488
iter_ += i;
1489
- return *this ;
1489
+ return static_cast <Derived&>(*this );
1490
+ }
1491
+
1492
+ Derived& operator -=(difference_type i) {
1493
+ iter_ -= i;
1494
+ return static_cast <Derived&>(*this );
1490
1495
}
1491
1496
1492
1497
friend decltype (iter_ - iter_) operator-(const iterator_wrapper& lhs, const iterator_wrapper& rhs) {
@@ -1503,8 +1508,17 @@ class iterator_wrapper {
1503
1508
return iter;
1504
1509
}
1505
1510
1511
+ friend Derived operator +(difference_type i, Derived iter) {
1512
+ return iter + i;
1513
+ }
1514
+
1506
1515
friend bool operator ==(const iterator_wrapper& lhs, const iterator_wrapper& rhs) { return lhs.iter_ == rhs.iter_ ; }
1507
1516
friend bool operator !=(const iterator_wrapper& lhs, const iterator_wrapper& rhs) { return lhs.iter_ != rhs.iter_ ; }
1517
+
1518
+ friend bool operator >(const iterator_wrapper& lhs, const iterator_wrapper& rhs) { return lhs.iter_ > rhs.iter_ ; }
1519
+ friend bool operator <(const iterator_wrapper& lhs, const iterator_wrapper& rhs) { return lhs.iter_ < rhs.iter_ ; }
1520
+ friend bool operator <=(const iterator_wrapper& lhs, const iterator_wrapper& rhs) { return lhs.iter_ <= rhs.iter_ ; }
1521
+ friend bool operator >=(const iterator_wrapper& lhs, const iterator_wrapper& rhs) { return lhs.iter_ >= rhs.iter_ ; }
1508
1522
};
1509
1523
1510
1524
class iterator_error : std::runtime_error {
You can’t perform that action at this time.
0 commit comments