13 template <
class... Args, std::size_t... I>
16 (a_dst[I].Pack(std::get<I>(a_tuple)), ...);
19 template <
class... Args>
22 CopyArgsImpl(a_tuple, a_dst, std::index_sequence_for<Args...>{});
26 template <
class Enable,
class... Args>
29 template <
class... Args>
33 is_return_convertible<Args>...>>,
43 _args(
std::forward<Args>(a_args)...)
58 _args(
std::move(a_rhs._args))
65 a_dst.resize(
sizeof...(Args));
66 auto& args =
const_cast<std::add_lvalue_reference_t<std::decay_t<decltype(_args)
>>>(_args);
72 std::tuple<std::decay_t<Args>...>
_args;
76 template <
class... Args>
79 template <
class... Args>
~FunctionArguments() override=default
FunctionArguments(Args &&... a_args)
Definition: FunctionArguments.h:41
FunctionArguments()
Definition: FunctionArguments.h:46
bool operator()(BSScrapArray< Variable > &a_dst) const override
Definition: FunctionArguments.h:63
FunctionArguments(const FunctionArguments &a_rhs)
Definition: FunctionArguments.h:51
std::tuple< std::decay_t< Args >... > _args
Definition: FunctionArguments.h:72
FunctionArguments(FunctionArguments &&a_rhs)
Definition: FunctionArguments.h:56
Definition: FunctionArguments.h:27
Definition: IFunctionArguments.h:12
Definition: ZeroFunctionArguments.h:10
Definition: BSTArray.h:378
void CopyArgsImpl(std::tuple< Args... > &a_tuple, BSScrapArray< Variable > &a_dst, std::index_sequence< I... >)
Definition: FunctionArguments.h:14
void CopyArgs(std::tuple< Args... > &a_tuple, BSScrapArray< Variable > &a_dst)
Definition: FunctionArguments.h:20
Definition: AbsorbEffect.h:6
BSScript::IFunctionArguments * MakeFunctionArguments(Args &&... a_args)
Definition: FunctionArguments.h:80
Definition: EffectArchetypes.h:65