5#ifndef INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_TYPE_LIST_SIZE_HPP_
6#define INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_TYPE_LIST_SIZE_HPP_
12#include "arene/base/compiler_support/attributes.hpp"
13#include "arene/base/constraints/constraints.hpp"
14#include "arene/base/stdlib_choice/cstddef.hpp"
15#include "arene/base/stdlib_choice/enable_if.hpp"
16#include "arene/base/stdlib_choice/integral_constant.hpp"
17#include "arene/base/stdlib_choice/tuple_size.hpp"
18#include "arene/base/type_list/type_list.hpp"
24class std::tuple_size<arene::base::type_list<Tn...>> :
public std::integral_constant<std::size_t,
sizeof...(Tn)> {};
34namespace size_detail {
38template <
class T,
class = constraints<>>
39class has_tuple_size_impl :
public std::false_type {};
44class has_tuple_size_impl<T, constraints<
decltype(std::tuple_size<T>::value)>> :
public std::true_type {};
48template <
class T,
class = constraints<>>
54template <
template <
class...>
class L0,
class... Tn>
58 std::enable_if_t<!has_tuple_size_impl<L0<Tn...>>::value>>>
59 :
public std::integral_constant<std::size_t,
sizeof...(Tn)> {};
67 std::enable_if_t<has_tuple_size_impl<T>::value>>> :
public std::tuple_size<T> {};
81 return arene::base::type_lists::size_detail::size_impl<L0>::value;
112 return arene::base::type_lists::size_v<L0> == 0UL;
133 static constexpr bool value{empty_v<L0>};
Definition apply_all.hpp:14
constexpr auto size() -> std::size_t
Get the size of the type list.
Definition size.hpp:80
ARENE_MAYBE_UNUSED constexpr bool empty_v
Get whether the type list is empty.
constexpr auto empty() -> bool
Get whether the type list is empty.
Definition size.hpp:111
Definition array_exceptions_disabled.cpp:11
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10
Get whether the type list is empty.
Definition size.hpp:129
static constexpr bool value
The Result of the check.
Definition size.hpp:133