37 std::make_index_sequence<
43 template <
class T,
class =
void>
53 template <
class U, std::enable_if_t<std::is_same_v<std::decay_t<U>, value_type>,
int> = 0>
55 _arg{
std::forward<U>(a_arg) }
60 template <
class U, std::enable_if_t<std::is_same_v<std::decay_t<U>, value_type>,
int> = 0>
63 _arg = std::forward<U>(a_arg);
82 is_not_object_pointer<T>>>>
91 template <
class U, std::enable_if_t<std::is_same_v<std::decay_t<U>, value_type>,
int> = 0>
95 Pack(std::forward<U>(a_arg));
100 template <
class U, std::enable_if_t<std::is_same_v<std::decay_t<U>, value_type>,
int> = 0>
104 _formID = a_arg->GetFormID();
122 is_object_pointer_v<T>>>
131 template <
class U, std::enable_if_t<std::is_same_v<std::decay_t<U>, value_type>,
int> = 0>
135 Pack(std::forward<U>(a_arg));
140 template <
class U, std::enable_if_t<std::is_same_v<std::decay_t<U>, value_type>,
int> = 0>
143 _object.reset(a_arg);
148 return _object.get();
Definition: NiSmartPointer.h:9
Definition: TESObjectREFR.h:105
VMArg()
Definition: RegistrationTraits.h:127
value_type Unpack()
Definition: RegistrationTraits.h:146
VMArg(U &&a_arg)
Definition: RegistrationTraits.h:132
std::decay_t< T > value_type
Definition: RegistrationTraits.h:125
void Pack(U &&a_arg)
Definition: RegistrationTraits.h:141
VMArg(U &&a_arg)
Definition: RegistrationTraits.h:92
void Pack(U &&a_arg)
Definition: RegistrationTraits.h:101
std::decay_t< T > value_type
Definition: RegistrationTraits.h:85
value_type Unpack()
Definition: RegistrationTraits.h:108
VMArg()
Definition: RegistrationTraits.h:87
Definition: RegistrationTraits.h:45
VMArg()
Definition: RegistrationTraits.h:49
std::decay_t< T > value_type
Definition: RegistrationTraits.h:47
void Pack(U &&a_arg)
Definition: RegistrationTraits.h:61
VMArg(U &&a_arg)
Definition: RegistrationTraits.h:54
value_type Unpack()
Definition: RegistrationTraits.h:66
Definition: AbsorbEffect.h:6
std::uint32_t FormID
Definition: BSCoreTypes.h:5
std::is_convertible< std::decay_t< T >, RE::TESObjectREFR * > is_object_pointer
Definition: RegistrationTraits.h:12
std::negation< is_object_pointer< T > > is_not_object_pointer
Definition: RegistrationTraits.h:18
constexpr bool is_not_form_pointer_v
Definition: RegistrationTraits.h:33
std::is_convertible< std::decay_t< T >, RE::TESForm * > is_form_pointer
Definition: RegistrationTraits.h:24
VMArg(T &&) -> VMArg< T >
constexpr bool is_form_pointer_v
Definition: RegistrationTraits.h:27
std::negation< is_form_pointer< T > > is_not_form_pointer
Definition: RegistrationTraits.h:30
constexpr bool is_not_object_pointer_v
Definition: RegistrationTraits.h:21
constexpr bool is_object_pointer_v
Definition: RegistrationTraits.h:15
Definition: NiBinaryStream.h:94
Definition: RegistrationTraits.h:40