mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
[Support] Implement llvm::Registry::iterator via llvm_iterator_facade
Summary: Among other things, this allows using STL algorithms like 'find_if' over llvm::Registry. Reviewers: sammccall Reviewed By: sammccall Subscribers: kristina, llvm-commits Differential Revision: https://reviews.llvm.org/D56854 llvm-svn: 351566
This commit is contained in:
parent
2716e86e57
commit
59899accb7
@ -81,17 +81,17 @@ namespace llvm {
|
||||
|
||||
/// Iterators for registry entries.
|
||||
///
|
||||
class iterator {
|
||||
class iterator
|
||||
: public llvm::iterator_facade_base<iterator, std::forward_iterator_tag,
|
||||
const entry> {
|
||||
const node *Cur;
|
||||
|
||||
public:
|
||||
explicit iterator(const node *N) : Cur(N) {}
|
||||
|
||||
bool operator==(const iterator &That) const { return Cur == That.Cur; }
|
||||
bool operator!=(const iterator &That) const { return Cur != That.Cur; }
|
||||
iterator &operator++() { Cur = Cur->Next; return *this; }
|
||||
const entry &operator*() const { return Cur->Val; }
|
||||
const entry *operator->() const { return &Cur->Val; }
|
||||
};
|
||||
|
||||
// begin is not defined here in order to avoid usage of an undefined static
|
||||
|
Loading…
Reference in New Issue
Block a user