diff options
author | Dan Gohman <gohman@apple.com> | 2008-10-16 00:12:39 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-10-16 00:12:39 +0000 |
commit | 3d4227bec59358199c7d53fad8f03fd075723fcf (patch) | |
tree | 8c00d8fec134ebb5cfa331caa78aa272bbb1548e /include/llvm/ADT/STLExtras.h | |
parent | b382c4dc235b78b606b305f1913fafc20eca472c (diff) | |
download | external_llvm-3d4227bec59358199c7d53fad8f03fd075723fcf.zip external_llvm-3d4227bec59358199c7d53fad8f03fd075723fcf.tar.gz external_llvm-3d4227bec59358199c7d53fad8f03fd075723fcf.tar.bz2 |
Fix several places that called mapped_iterator's constructor without
passing in a function object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57615 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/STLExtras.h')
-rw-r--r-- | include/llvm/ADT/STLExtras.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/include/llvm/ADT/STLExtras.h b/include/llvm/ADT/STLExtras.h index 5c5e4aa..e009939 100644 --- a/include/llvm/ADT/STLExtras.h +++ b/include/llvm/ADT/STLExtras.h @@ -73,6 +73,7 @@ public: typedef mapped_iterator<RootIt, UnaryFunc> _Self; inline const RootIt &getCurrent() const { return current; } + inline const UnaryFunc &getFunc() const { return Fn; } inline explicit mapped_iterator(const RootIt &I, UnaryFunc F) : current(I), Fn(F) {} @@ -87,9 +88,13 @@ public: _Self& operator--() { --current; return *this; } _Self operator++(int) { _Self __tmp = *this; ++current; return __tmp; } _Self operator--(int) { _Self __tmp = *this; --current; return __tmp; } - _Self operator+ (difference_type n) const { return _Self(current + n); } + _Self operator+ (difference_type n) const { + return _Self(current + n, Fn); + } _Self& operator+= (difference_type n) { current += n; return *this; } - _Self operator- (difference_type n) const { return _Self(current - n); } + _Self operator- (difference_type n) const { + return _Self(current - n, Fn); + } _Self& operator-= (difference_type n) { current -= n; return *this; } reference operator[](difference_type n) const { return *(*this + n); } @@ -106,7 +111,7 @@ template <class _Iterator, class Func> inline mapped_iterator<_Iterator, Func> operator+(typename mapped_iterator<_Iterator, Func>::difference_type N, const mapped_iterator<_Iterator, Func>& X) { - return mapped_iterator<_Iterator, Func>(X.getCurrent() - N); + return mapped_iterator<_Iterator, Func>(X.getCurrent() - N, X.getFunc()); } |