15#ifndef LIEF_PDB_FUNCTION_H
16#define LIEF_PDB_FUNCTION_H
36 using iterator_category = std::forward_iterator_tag;
37 using value_type = std::unique_ptr<Function>;
38 using difference_type = std::ptrdiff_t;
39 using pointer = Function*;
40 using reference = Function&;
41 using implementation = details::FunctionIt;
45 friend class Iterator;
52 template <
typename RefT>
53 PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {}
58 Iterator(std::unique_ptr<details::FunctionIt> impl);
69 Iterator tmp = *
static_cast<Iterator*
>(
this);
70 ++*
static_cast<Iterator *
>(
this);
77 return static_cast<const Iterator*
>(
this)->
operator*();
81 std::unique_ptr<details::FunctionIt> impl_;
83 Function(std::unique_ptr<details::Function> impl);
85 std::string
name()
const;
104 std::ostream&
operator<<(std::ostream& os,
const Function& F)
111 std::unique_ptr<details::Function> impl_;
pointer operator->() const
Definition PDB/Function.hpp:47
Iterator operator++(int)
Definition PDB/Function.hpp:68
friend bool operator==(const Iterator &LHS, const Iterator &RHS)
Iterator(const Iterator &)
std::unique_ptr< Function > operator*() const
PointerProxy operator->() const
Definition PDB/Function.hpp:76
friend bool operator!=(const Iterator &LHS, const Iterator &RHS)
Definition PDB/Function.hpp:62
Iterator(std::unique_ptr< details::FunctionIt > impl)
Definition PDB/Function.hpp:32
std::string section_name() const
The name of the section in which this function is defined.
friend std::ostream & operator<<(std::ostream &os, const Function &F)
Definition PDB/Function.hpp:104
uint32_t code_size() const
The size of the function.
Function(std::unique_ptr< details::Function > impl)
std::string name() const
The name of the function (this name is usually demangled)
debug_location_t debug_location() const
Original source code location.
uint32_t RVA() const
The Relative Virtual Address of the function.
std::string to_string() const
Definition BuildMetadata.hpp:26
Definition BuildMetadata.hpp:24
LIEF namespace.
Definition Abstract/Binary.hpp:36
#define LIEF_API
Definition visibility.h:41