15#ifndef LIEF_DWARF_TYPE_STRUCTURE_H
16#define LIEF_DWARF_TYPE_STRUCTURE_H
34 template<
typename... Args,
35 typename =
typename std::
36 enable_if<std::is_constructible<
Type, Args&&...>::value>::type>
38 Type(std::forward<Args>(args)...) {}
43 Member(std::unique_ptr<details::Member> impl);
80 std::unique_ptr<Type>
type()
const;
89 std::unique_ptr<details::Member> impl_;
101 const auto kind = type->kind();
121 template<
typename... Args,
122 typename =
typename std::
123 enable_if<std::is_constructible<
ClassLike, Args&&...>::value>::type>
125 ClassLike(std::forward<Args>(args)...) {}
143 template<
typename... Args,
144 typename =
typename std::
145 enable_if<std::is_constructible<
ClassLike, Args&&...>::value>::type>
147 ClassLike(std::forward<Args>(args)...) {}
165 template<
typename... Args,
166 typename =
typename std::
167 enable_if<std::is_constructible<
ClassLike, Args&&...>::value>::type>
169 ClassLike(std::forward<Args>(args)...) {}
187 template<
typename... Args,
188 typename =
typename std::
189 enable_if<std::is_constructible<
ClassLike, Args&&...>::value>::type>
191 ClassLike(std::forward<Args>(args)...) {}
This class represents a DWARF function which can be associated with either: DW_TAG_subprogram or DW_T...
Definition DWARF/Function.hpp:43
Definition DWARF/Type.hpp:70
@ PACKED
Definition DWARF/Type.hpp:142
@ STRUCT
Definition DWARF/Type.hpp:134
@ CLASS
Definition DWARF/Type.hpp:131
@ UNION
Definition DWARF/Type.hpp:135
Type(std::unique_ptr< details::Type > impl)
result< uint64_t > bit_size() const
If the current member is a bit-field, this function returns its size in bits.
Member(std::unique_ptr< details::Member > impl)
std::unique_ptr< Type > type() const
Type of the current member.
Member & operator=(Member &&other) noexcept
Member(Member &&other) noexcept
Member(const Member &)=delete
std::string name() const
Name of the member.
bool is_declaration() const
result< uint64_t > offset() const
Offset of the current member in the struct/union/class.
result< uint64_t > bit_offset() const
Offset of the current member in bits in the struct/union/class.
Member & operator=(const Member &)=delete
iterator_range< Function::Iterator > functions_it
Definition DWARF/types/ClassLike.hpp:98
functions_it functions() const
Iterator over the functions defined by the class-like.
ClassLike(const ClassLike &)=delete
ClassLike(ClassLike &&) noexcept=default
ClassLike & operator=(const ClassLike &)=delete
std::vector< Member > members() const
Return the list of all the attributes defined in this class-like type.
std::unique_ptr< Member > find_member(uint64_t offset) const
Try to find the attribute at the given offset.
ClassLike(Args &&... args)
Definition DWARF/types/ClassLike.hpp:37
static bool classof(const Type *type)
Definition DWARF/types/ClassLike.hpp:100
Class(Args &&... args)
Definition DWARF/types/ClassLike.hpp:146
Class & operator=(const Class &)=delete
Class(Class &&) noexcept=default
Class(const Class &)=delete
static bool classof(const Type *type)
Definition DWARF/types/ClassLike.hpp:155
static bool classof(const Type *type)
Definition DWARF/types/ClassLike.hpp:199
Packed & operator=(const Packed &)=delete
Packed(Packed &&) noexcept=default
Packed(Args &&... args)
Definition DWARF/types/ClassLike.hpp:190
Packed(const Packed &)=delete
Structure(Args &&... args)
Definition DWARF/types/ClassLike.hpp:124
Structure(Structure &&) noexcept=default
Structure(const Structure &)=delete
Structure & operator=(const Structure &)=delete
static bool classof(const Type *type)
Definition DWARF/types/ClassLike.hpp:133
Union(Union &&) noexcept=default
Union(const Union &)=delete
static bool classof(const Type *type)
Definition DWARF/types/ClassLike.hpp:177
Union & operator=(const Union &)=delete
Union(Args &&... args)
Definition DWARF/types/ClassLike.hpp:168
Definition iterators.hpp:601
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:77
Definition DWARF/types/ClassLike.hpp:26
Definition DWARF/types/Array.hpp:23
Namespace for the DWARF debug format.
Definition DWARF/CompilationUnit.hpp:28
LIEF namespace.
Definition Abstract/Binary.hpp:40
#define LIEF_API
Definition visibility.h:45