5template<
typename... Types>
19template<
typename LeftType,
typename... LeftTypes>
25template<
typename... RightTypes>
31template<
typename LeftType,
typename... LeftTypes,
typename... RightTypes>
39template<
size_t LastN,
typename LeftType,
typename... LeftTypes,
typename... RightTypes>
51 using type = std::conditional_t<LastN == 0, type_0, type_1>;
54template<
size_t LastN,
typename... Types>
57template<
size_t LastN,
typename... Types>
60 static_assert(LastN <=
sizeof...(Types),
"LastN out of range");
65template<
size_t LastN,
typename... Types>
68 static_assert(LastN <=
sizeof...(Types),
"LastN out of range");
73template<
size_t LastN,
typename... Types>
76template<
size_t LastN,
typename... Types>
typename last_n_types_list_st< LastN, Types..., type_list_t<> >::type last_n_types_list_t
last_n_types_t< LastN, Types... > select_last_n_types_t
void test_last_n_types_list_t()
void test_last_n_types_t()
typename last_n_types_st< LastN, Types... >::type last_n_types_t
Type to string name conversions are defined.
hidden::pop_back_type_t< Types... > pop_back_type_t
types::pop_back_type_t< left_list > new_left
std::conditional_t< LastN==1, new_left, typename last_n_types_list_st< LastN-1, new_left, new_right >::type > type_1
std::conditional_t< LastN==0, type_0, type_1 > type
typename last_n_types_list_st< LastN, type_list_t< Types... >, type_list_t<> >::type type
typename last_n_types_list_st< LastN, type_list_t< Types... >, type_list_t<> >::type type
This type is used to manipulate type list.
Stream output operators << are implemented.