LLVM: include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
9#ifndef LLVM_DEBUGINFO_PDB_CONCRETESYMBOLENUMERATOR_H
10#define LLVM_DEBUGINFO_PDB_CONCRETESYMBOLENUMERATOR_H
11
16#include
17#include
18#include
19
20namespace llvm {
21namespace pdb {
22
23template
25public:
27 : Enumerator(std::move(SymbolEnumerator)) {}
28
30
32 return Enumerator->getChildCount();
33 }
34
36 std::unique_ptr Child = Enumerator->getChildAtIndex(Index);
38 }
39
40 std::unique_ptr getNext() override {
42 }
43
44 void reset() override { Enumerator->reset(); }
45
46private:
47
48 std::unique_ptr Enumerator;
49};
50
51}
52}
53
54#endif
~ConcreteSymbolEnumerator() override=default
std::unique_ptr< ChildType > getNext() override
Definition ConcreteSymbolEnumerator.h:40
std::unique_ptr< ChildType > getChildAtIndex(uint32_t Index) const override
Definition ConcreteSymbolEnumerator.h:35
uint32_t getChildCount() const override
Definition ConcreteSymbolEnumerator.h:31
void reset() override
Definition ConcreteSymbolEnumerator.h:44
ConcreteSymbolEnumerator(std::unique_ptr< IPDBEnumSymbols > SymbolEnumerator)
Definition ConcreteSymbolEnumerator.h:26
This is an optimization pass for GlobalISel generic memory operations.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
CastInfo< X, std::unique_ptr< Y > >::CastResultType unique_dyn_cast_or_null(std::unique_ptr< Y > &Val)
Implement std::hash so that hash_code can be used in STL containers.