8 [[nodiscard]] constexpr
const char*
GetName() const noexcept {
return name; }
13 for (
auto iter =
this; iter; iter = iter->GetBaseRTTI()) {
25 static_assert(
sizeof(
NiRTTI) == 0x10);
31 std::remove_pointer_t<
32 std::remove_reference_t<
33 std::remove_cv_t<T>>>;
35 template <
class To,
class From>
40 template <
class To,
class From>
42 std::is_lvalue_reference<
43 std::remove_cv_t<From>>
46 template <
class To,
class From>
49 std::remove_cv_t<From>>
52 template <
class Base,
class Derived>
56 remove_cvpr_t<Derived>>
59 template <
class T,
class Enable =
void>
74 template <
class To,
class From>
77 types_are_compat<To, From>,
78 is_base_of_no_cvpr<From, To>,
83 template <
class To,
class From>
106 const RE::NiRTTI* fromRTTI = a_from->GetRTTI();
108 if (fromRTTI == toRTTI) {
109 return static_cast<To
>(
const_cast<From*
>(a_from));
128 return static_cast<To
>(
const_cast<From*
>(a_from));
To netimmerse_cast(const From *a_from)
Definition: NiRTTI.h:97
Definition: Relocation.h:985
constexpr bool IsKindOf(const NiRTTI *a_rtti) const noexcept
Definition: NiRTTI.h:11
const NiRTTI * baseRTTI
Definition: NiRTTI.h:23
constexpr const char * GetName() const noexcept
Definition: NiRTTI.h:8
constexpr const NiRTTI * GetBaseRTTI() const noexcept
Definition: NiRTTI.h:9
const char * name
Definition: NiRTTI.h:22
std::remove_pointer_t< std::remove_reference_t< std::remove_cv_t< T > >> remove_cvpr_t
Definition: NiRTTI.h:33
constexpr bool cast_is_valid_v
Definition: NiRTTI.h:84
Definition: AbsorbEffect.h:6
Definition: NiBinaryStream.h:94