1#include "gtest/gtest.h"
25 using type_list_empty_t = Kokkos::Impl::type_list<>;
26 static_assert(type_list_size_v<type_list_empty_t> == 0);
28 static_assert(type_list_size_v<type_list_t> == 3);
36 static_assert( type_list_contains_v<char, type_list_t>);
37 static_assert( ! type_list_contains_v<double, type_list_t>);
45 static_assert(std::same_as<type_list_at_t<0, type_list_t>,
char>);
46 static_assert(std::same_as<type_list_at_t<1, type_list_t>,
short>);
47 static_assert(std::same_as<type_list_at_t<2, type_list_t>,
int>);
54 using type = std::vector<T>;
62 using transformed_type_list_t = transform_type_list_t<VectorOfTransformer, type_list_t>;
64 using expt_transformed_type_list_t = Kokkos::Impl::type_list<std::vector<char>, std::vector<short>, std::vector<int>>;
66 static_assert(std::same_as<transformed_type_list_t, expt_transformed_type_list_t>);
74 using expt_tuple_t = std::tuple<char, short, int>;
76 static_assert(std::same_as<type_list_to_tuple_t<type_list_t>, expt_tuple_t>);
84 static_assert(type_list_index_v<char, type_list_t> == 0);
85 static_assert(type_list_index_v<short, type_list_t> == 1);
86 static_assert(type_list_index_v<int, type_list_t> == 2);
95 size_t sum_of_sizes = 0;
97 for_each<type_list_t>([&] <
typename T>()
constexpr {
98 sum_of_sizes +=
sizeof(T);
101 return sum_of_sizes ==
sizeof(char) +
sizeof(
short) +
sizeof(int);
constexpr size_t type_list_size_v
constexpr bool type_list_contains_v
constexpr void for_each(Callable callable)
Calls the instantiation of the call operator of a callable object for each type in a Kokkos::Impl::ty...
typename TransformTypeList< TransformerType, T >::type transform_type_list_t
typename TypeListToTuple< T >::type type_list_to_tuple_t
constexpr size_t type_list_index_v
typename TypeListAt< I, T >::type type_list_at_t
Kokkos::Impl::type_list< char, short, int > type_list_t
TEST(impl, type_list_size_v)