LIEF: Library to Instrument Executable Formats Version 0.16.0
Loading...
Searching...
No Matches
LIEF::pdb::types::ClassLike Class Reference

This class abstracts the following PDB types: LF_STRUCTURE, LF_INTERFACE, LF_CLASS or LF_UNION. More...

#include <ClassLike.hpp>

Inheritance diagram for LIEF::pdb::types::ClassLike:
Collaboration diagram for LIEF::pdb::types::ClassLike:

Public Types

using attributes_iterator = iterator_range<Attribute::Iterator>
 Attributes iterator.
 
using methods_iterator = iterator_range<Method::Iterator>
 Methods iterator.
 
- Public Types inherited from LIEF::pdb::Type
enum class  KIND {
  UNKNOWN = 0 , CLASS , POINTER , SIMPLE ,
  ENUM , FUNCTION , MODIFIER , BITFIELD ,
  ARRAY , UNION , STRUCTURE , INTERFACE
}
 

Public Member Functions

std::string unique_name () const
 Mangled type name.
 
std::string name () const
 Demangled type name.
 
attributes_iterator attributes () const
 Iterator over the different attributes defined in this class-like type.
 
methods_iterator methods () const
 Iterator over the different methods implemented in this class-type type.
 
uint64_t size () const
 Size of the type including all its attributes. This size should match the sizeof(...) this type.
 
 ~ClassLike () override
 
- Public Member Functions inherited from LIEF::pdb::Type
KIND kind () const
 
template<class T >
const T * as () const
 
virtual ~Type ()
 

Static Public Member Functions

template<class T >
static bool classof (const T *, typename std::enable_if< std::is_base_of< ClassLike, T >::value >::type *=0)
 
- Static Public Member Functions inherited from LIEF::pdb::Type
static std::unique_ptr< Typecreate (std::unique_ptr< details::Type > impl)
 

Detailed Description

This class abstracts the following PDB types: LF_STRUCTURE, LF_INTERFACE, LF_CLASS or LF_UNION.

Member Typedef Documentation

◆ attributes_iterator

◆ methods_iterator

Constructor & Destructor Documentation

◆ ~ClassLike()

LIEF::pdb::types::ClassLike::~ClassLike ( )
override

Member Function Documentation

◆ attributes()

attributes_iterator LIEF::pdb::types::ClassLike::attributes ( ) const

Iterator over the different attributes defined in this class-like type.

◆ classof()

template<class T >
static bool LIEF::pdb::types::ClassLike::classof ( const T * ,
typename std::enable_if< std::is_base_of< ClassLike, T >::value >::type * = 0 )
inlinestatic

◆ methods()

methods_iterator LIEF::pdb::types::ClassLike::methods ( ) const

Iterator over the different methods implemented in this class-type type.

◆ name()

std::string LIEF::pdb::types::ClassLike::name ( ) const

Demangled type name.

◆ size()

uint64_t LIEF::pdb::types::ClassLike::size ( ) const

Size of the type including all its attributes. This size should match the sizeof(...) this type.

◆ unique_name()

std::string LIEF::pdb::types::ClassLike::unique_name ( ) const

Mangled type name.


The documentation for this class was generated from the following file: