8 [[nodiscard]] constexpr
const char*
GetName() const noexcept {
return name; }
13 for (
auto iter =
this; iter; iter = iter->GetBaseRTTI()) {
27 static_assert(
sizeof(
NiRTTI) == 0x10);
33 std::remove_pointer_t<
34 std::remove_reference_t<
35 std::remove_cv_t<T>>>;
37 template <
class To,
class From>
42 template <
class To,
class From>
44 std::is_lvalue_reference<
45 std::remove_cv_t<From>>
48 template <
class To,
class From>
51 std::remove_cv_t<From>>
54 template <
class Base,
class Derived>
58 remove_cvpr_t<Derived>>
61 template <
class T,
class Enable =
void>
76 template <
class To,
class From>
79 types_are_compat<To, From>,
80 is_base_of_no_cvpr<From, To>,
85 template <
class To,
class From>
108 const RE::NiRTTI* fromRTTI = a_from->GetRTTI();
110 if (fromRTTI == toRTTI) {
111 return static_cast<To
>(
const_cast<From*
>(a_from));
130 return static_cast<To
>(
const_cast<From*
>(a_from));
To netimmerse_cast(const From *a_from)
Definition: NiRTTI.h:99
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: Relocation.h:210
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:35
constexpr bool cast_is_valid_v
Definition: NiRTTI.h:86
Definition: AbsorbEffect.h:6
Definition: EffectArchetypes.h:65