Simplify the recursive tmeplate in TypedKernel
PiperOrigin-RevId: 259897561
This commit is contained in:
parent
24b3e6cf73
commit
87e03a53f3
@ -525,16 +525,19 @@ class TypedKernel : public KernelBase {
|
||||
// structure.
|
||||
void PackParams(KernelArgsArray<kNumberOfParameters> *args,
|
||||
Params &... params) const {
|
||||
PackOneParam(args, params...);
|
||||
PackOneParamFromList(args, params...);
|
||||
}
|
||||
|
||||
template <typename T, typename... RestOfParams>
|
||||
void PackOneParam(KernelArgsArray<kNumberOfParameters> *args, const T &arg,
|
||||
const RestOfParams &... rest) const {
|
||||
void PackOneParamFromList(KernelArgsArray<kNumberOfParameters> *args,
|
||||
const T &arg, const RestOfParams &... rest) const {
|
||||
PackOneParam(args, arg);
|
||||
PackOneParam(args, rest...);
|
||||
PackOneParamFromList(args, rest...);
|
||||
}
|
||||
|
||||
// Base case for variadic template expansion - nothing to do!
|
||||
void PackOneParamFromList(KernelArgsArray<kNumberOfParameters> *args) const {}
|
||||
|
||||
// Packs one (non-DeviceMemoryBase) parameter into the arg and sizes array.
|
||||
// The enable_if<> is for excluding DeviceMemoryBase args, which have a
|
||||
// separate implementation below.
|
||||
@ -581,9 +584,6 @@ class TypedKernel : public KernelBase {
|
||||
args->add_shared_bytes(arg.size());
|
||||
}
|
||||
|
||||
// Base case for variadic template expansion - nothing to do!
|
||||
void PackOneParam(KernelArgsArray<kNumberOfParameters> *args) const {}
|
||||
|
||||
SE_DISALLOW_COPY_AND_ASSIGN(TypedKernel);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user