mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
[ADT] Attempt to appease another MSVC oddity by moving the injected
class name usage into a context we can put typename on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207084 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e703fcb975
commit
3c1f8e0054
@ -104,6 +104,8 @@ class iterator_adaptor_base
|
||||
: public iterator_facade_base<
|
||||
DerivedT, typename WrappedTraitsT::iterator_category, T,
|
||||
typename WrappedTraitsT::difference_type, PointerT, ReferenceT> {
|
||||
typedef typename iterator_adaptor_base::iterator_facade_base BaseT;
|
||||
|
||||
protected:
|
||||
WrappedIteratorT I;
|
||||
|
||||
@ -130,17 +132,17 @@ public:
|
||||
I -= n;
|
||||
return *static_cast<DerivedT *>(this);
|
||||
}
|
||||
using iterator_adaptor_base::iterator_facade_base::operator-;
|
||||
using BaseT::operator-;
|
||||
difference_type operator-(const DerivedT &RHS) const { return I - RHS.I; }
|
||||
|
||||
// We have to explicitly provide ++ and -- rather than letting the facade
|
||||
// forward to += because WrappedIteratorT might not support +=.
|
||||
using iterator_adaptor_base::iterator_facade_base::operator++;
|
||||
using BaseT::operator++;
|
||||
DerivedT &operator++() {
|
||||
++I;
|
||||
return *static_cast<DerivedT *>(this);
|
||||
}
|
||||
using iterator_adaptor_base::iterator_facade_base::operator--;
|
||||
using BaseT::operator--;
|
||||
DerivedT &operator--() {
|
||||
--I;
|
||||
return *static_cast<DerivedT *>(this);
|
||||
|
Loading…
Reference in New Issue
Block a user