9#ifndef LLVM_DEBUGINFO_PDB_CONCRETESYMBOLENUMERATOR_H
10#define LLVM_DEBUGINFO_PDB_CONCRETESYMBOLENUMERATOR_H
23template <
typename ChildType>
27 : Enumerator(
std::
move(SymbolEnumerator)) {}
32 return Enumerator->getChildCount();
36 std::unique_ptr<PDBSymbol> Child = Enumerator->getChildAtIndex(Index);
40 std::unique_ptr<ChildType>
getNext()
override {
44 void reset()
override { Enumerator->reset(); }
~ConcreteSymbolEnumerator() override=default
std::unique_ptr< ChildType > getNext() override
std::unique_ptr< ChildType > getChildAtIndex(uint32_t Index) const override
uint32_t getChildCount() const override
ConcreteSymbolEnumerator(std::unique_ptr< IPDBEnumSymbols > SymbolEnumerator)
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.