5#ifndef INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_TYPE_LIST_AT_HPP_
6#define INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_TYPE_LIST_AT_HPP_
12#include "arene/base/stdlib_choice/cstddef.hpp"
13#include "arene/base/stdlib_choice/integer_sequence.hpp"
14#include "arene/base/stdlib_choice/tuple_element.hpp"
15#include "arene/base/type_list/type_list.hpp"
16#include "arene/base/type_traits/type_identity.hpp"
31using tl = arene::base::type_list<Tn...>;
36template <
typename... Bases>
37class idx :
public Bases... {};
42template <std::size_t Index,
typename T>
52template <std::size_t Index,
typename T>
53inline auto get_element_type(idx_el<Index, T>
const&) -> arene::base::type_identity<T>;
65template <std::size_t... Indices,
typename... Types>
66inline auto make_idx(std::index_sequence<Indices...>, tl<Types...>) -> idx<idx_el<Indices, Types>...>
const&;
76template <std::size_t Index,
typename L0>
83template <std::size_t Index,
template <
typename...>
class TypeList0,
typename... Tn0>
84class at_impl<Index, TypeList0<Tn0...>> {
86 static_assert(Index <
sizeof...(Tn0),
"Index must be less than the number of types in the list");
88 using type =
typename decltype(::arene::base::type_lists::at_detail::get_element_type<Index>(
89 ::arene::base::type_lists::at_detail::make_idx(std::make_index_sequence<
sizeof...(Tn0)>(), tl<Tn0...>{})
103template <
class L0, std::size_t Index>
125template <std::size_t I,
class... Tn>
126class std::tuple_element<I, arene::base::type_list<Tn...>>
127 :
public arene::base::type_lists::at_detail::at_impl<I, arene::base::type_list<Tn...>> {};
Definition apply_all.hpp:14
Definition array_exceptions_disabled.cpp:11
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10