forked from OSchip/llvm-project
Make the atom_iterator copy assignable
This makes it a bit more like a 'real' iterator though I still haven't gone through to make sure it meets the full requirements. Copy assignability seems to be required by MSVC's std::find_if, which is its right. llvm-svn: 232097
This commit is contained in:
parent
7f29cf5770
commit
f1f52512ea
|
@ -129,14 +129,13 @@ public:
|
|||
class atom_iterator : public std::iterator<std::forward_iterator_tag, T> {
|
||||
public:
|
||||
atom_iterator(const atom_collection<T> &c, const void *it)
|
||||
: _collection(c), _it(it) { }
|
||||
: _collection(&c), _it(it) { }
|
||||
|
||||
const T *operator*() const {
|
||||
return _collection.deref(_it);
|
||||
return _collection->deref(_it);
|
||||
}
|
||||
const T *operator->() const {
|
||||
|
||||
return _collection.deref(_it);
|
||||
return _collection->deref(_it);
|
||||
}
|
||||
|
||||
friend bool operator==(const atom_iterator<T> &lhs, const atom_iterator<T> &rhs) {
|
||||
|
@ -148,11 +147,11 @@ public:
|
|||
}
|
||||
|
||||
atom_iterator<T> &operator++() {
|
||||
_collection.next(_it);
|
||||
_collection->next(_it);
|
||||
return *this;
|
||||
}
|
||||
private:
|
||||
const atom_collection<T> &_collection;
|
||||
const atom_collection<T> *_collection;
|
||||
const void *_it;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue