Use c++11 variadic magic, suggested by @weinbe2

This commit is contained in:
Stan Moore
2022-05-19 10:35:10 -06:00
parent d8d6884def
commit a9431208a2

View File

@ -280,46 +280,11 @@ void destroy_kokkos(TYPE data, typename TYPE::value_type** &array)
deallocate first to reduce memory use
------------------------------------------------------------------------- */
template <typename TYPE>
static void realloc_kokkos(TYPE &data, const char *name, int n1)
template <typename TYPE, typename... Indices>
static void realloc_kokkos(TYPE &data, const char *name, Indices... ns)
{
data = TYPE();
data = TYPE(Kokkos::NoInit(std::string(name)),n1);
}
template <typename TYPE>
static void realloc_kokkos(TYPE &data, const char *name, int n1, int n2)
{
data = TYPE();
data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2);
}
template <typename TYPE>
static void realloc_kokkos(TYPE &data, const char *name, int n1, int n2, int n3)
{
data = TYPE();
data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2,n3);
}
template <typename TYPE>
static void realloc_kokkos(TYPE &data, const char *name, int n1, int n2, int n3, int n4)
{
data = TYPE();
data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2,n3,n4);
}
template <typename TYPE>
static void realloc_kokkos(TYPE &data, const char *name, int n1, int n2, int n3, int n4, int n5)
{
data = TYPE();
data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2,n3,n4,n5);
}
template <typename TYPE>
static void realloc_kokkos(TYPE &data, const char *name, int n1, int n2, int n3, int n4, int n5, int n6)
{
data = TYPE();
data = TYPE(Kokkos::NoInit(std::string(name)),n1,n2,n3,n4,n5,n6);
data = TYPE(Kokkos::NoInit(std::string(name)), ns...);
}
/* ----------------------------------------------------------------------