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.