3struct __type_info_node;
9 class __declspec(novtable) type_info
14 [[nodiscard]]
const char* mangled_name()
const noexcept {
return _name; }
21 static_assert(
sizeof(type_info) == 0x18);
34 constexpr RVA() noexcept = default;
36 constexpr
RVA(
std::uint32_t a_rva) noexcept :
41 [[nodiscard]] std::uint32_t
offset() const noexcept {
return _rva; }
44 [[nodiscard]]
explicit constexpr operator bool() const noexcept {
return is_good(); }
47 [[nodiscard]]
constexpr bool is_good() const noexcept {
return _rva != 0; }
52 static_assert(
sizeof(RVA<void*>) == 0x4);
64 static_assert(
sizeof(
PMD) == 0xC);
127 inline void*
RTDynamicCast(
void* a_inptr, std::int32_t a_vfDelta,
void* a_srcType,
void* a_targetType, std::int32_t a_isReference)
131 return func(a_inptr, a_vfDelta, a_srcType, a_targetType, a_isReference);
139 std::remove_pointer_t<
140 std::remove_reference_t<T>>>;
149 std::remove_cv_t<T>>>
152 template <
class,
class>
157 template <
class To,
class From>
162 template <
class To,
class From>
167 std::remove_pointer_t<To>>>
170 template <
class To,
class From>
175 std::remove_pointer_t<To>>>
178 template <
class To,
class From>
183 std::remove_pointer_t<To>>,
185 std::remove_pointer_t<To>>>
188 template <
class,
class =
void>
197 decltype(remove_cvpr_t<T>::RTTI)>> :
201 template <
class To,
class From>
210 implements_rtti<From>>
213 template <
class To,
class From>
230 return static_cast<To
>(
233 static_cast<const volatile void*
>(a_from)),
To skyrim_cast(From *a_from)
Definition: RTTI.h:226
pointer get() const
Definition: RTTI.h:40
std::uint32_t _rva
Definition: RTTI.h:50
constexpr RVA() noexcept=default
constexpr bool is_good() const noexcept
Definition: RTTI.h:47
std::uint32_t offset() const noexcept
Definition: RTTI.h:41
value_type * pointer
Definition: RTTI.h:31
reference operator*() const
Definition: RTTI.h:42
T value_type
Definition: RTTI.h:30
pointer operator->() const
Definition: RTTI.h:43
value_type & reference
Definition: RTTI.h:32
Definition: Relocation.h:808
Definition: Relocation.h:858
constexpr REL::ID RTDynamicCast(static_cast< std::uint64_t >(109689))
msvc::type_info TypeDescriptor
Definition: RTTI.h:54
std::remove_cv_t< std::remove_pointer_t< std::remove_reference_t< T > > > remove_cvpr_t
Definition: RTTI.h:140
constexpr bool cast_is_valid_v
Definition: RTTI.h:214
Definition: AbsorbEffect.h:6
void * RTDynamicCast(void *a_inptr, std::int32_t a_vfDelta, void *a_srcType, void *a_targetType, std::int32_t a_isReference)
Definition: RTTI.h:127
Definition: NiBinaryStream.h:94
RVA< TypeDescriptor > typeDescriptor
Definition: RTTI.h:82
std::uint32_t numContainedBases
Definition: RTTI.h:83
Attribute
Definition: RTTI.h:70
@ kHasHierarchyDescriptor
@ kPrivateOrProtectedBase
stl::enumeration< Attribute, std::uint32_t > attributes
Definition: RTTI.h:85
PMD pmd
Definition: RTTI.h:84
std::uint32_t numBaseClasses
Definition: RTTI.h:103
Attribute
Definition: RTTI.h:93
RVA< BaseClassDescriptor > baseClassArray
Definition: RTTI.h:104
stl::enumeration< Attribute, std::uint32_t > attributes
Definition: RTTI.h:102
std::uint32_t signature
Definition: RTTI.h:101
RVA< ClassHierarchyDescriptor > classDescriptor
Definition: RTTI.h:122
std::uint32_t ctorDispOffset
Definition: RTTI.h:120
std::uint32_t offset
Definition: RTTI.h:119
stl::enumeration< Signature, std::uint32_t > signature
Definition: RTTI.h:118
RVA< TypeDescriptor > typeDescriptor
Definition: RTTI.h:121
Signature
Definition: RTTI.h:112
std::int32_t pDisp
Definition: RTTI.h:61
std::int32_t vDisp
Definition: RTTI.h:62
std::int32_t mDisp
Definition: RTTI.h:60