15#ifndef LIEF_PDB_TYPE_H
16#define LIEF_PDB_TYPE_H
50 template <
typename RefT>
56 Iterator(std::unique_ptr<details::TypeIt> impl);
76 return static_cast<const Iterator*
>(
this)->
operator*();
80 std::unique_ptr<details::TypeIt> impl_;
101 const T*
as()
const {
102 if (T::classof(
this)) {
103 return static_cast<const T*
>(
this);
108 static std::unique_ptr<Type>
create(std::unique_ptr<details::Type> impl);
113 Type(std::unique_ptr<details::Type> impl);
114 std::unique_ptr<details::Type> impl_;
Definition PDB/Type.hpp:41
pointer operator->() const
Definition PDB/Type.hpp:45
Definition PDB/Type.hpp:32
Iterator(const Iterator &)
Iterator(Iterator &&) noexcept
PointerProxy operator->() const
Definition PDB/Type.hpp:75
std::unique_ptr< Type > value_type
Definition PDB/Type.hpp:35
std::forward_iterator_tag iterator_category
Definition PDB/Type.hpp:34
std::unique_ptr< Type > operator*() const
details::TypeIt implementation
Definition PDB/Type.hpp:39
std::ptrdiff_t difference_type
Definition PDB/Type.hpp:36
Iterator operator++(int)
Definition PDB/Type.hpp:67
This is the base class for any PDB type.
Definition PDB/Type.hpp:30
const T * as() const
Definition PDB/Type.hpp:101
KIND
Definition PDB/Type.hpp:83
static std::unique_ptr< Type > create(std::unique_ptr< details::Type > impl)
LIEF namespace.
Definition Abstract/Binary.hpp:32
#define LIEF_API
Definition visibility.h:41