7#ifndef INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_VARIANT_TRAITS_HPP_
8#define INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_VARIANT_TRAITS_HPP_
15#include "arene/base/stdlib_choice/add_const.hpp"
16#include "arene/base/stdlib_choice/cstddef.hpp"
17#include "arene/base/stdlib_choice/integral_constant.hpp"
18#include "arene/base/stdlib_choice/numeric_limits.hpp"
19#include "arene/base/type_list/at.hpp"
20#include "arene/base/type_list/type_list.hpp"
29template <
typename... Ts>
42template <
typename...
Ts>
47template <
typename...
Ts>
52template <
typename Variant>
58template <std::size_t I,
class T>
59struct variant_alternative;
64template <std::size_t I,
class... Ts>
65struct variant_alternative<I,
variant<Ts...>> {
67 using type = type_lists::at_t<type_list<Ts...>, I>;
73template <std::size_t I,
class T>
74struct variant_alternative<I, T
const> {
77 using type =
typename std::add_const<
typename variant_alternative<I, T>::type>::type;
83template <std::size_t I,
class T>
84using variant_alternative_t =
typename variant_alternative<I, T>::type;
Helper struct to get the size of a variant.
Definition traits.hpp:53
variant() noexcept(std::is_nothrow_default_constructible< T0 >::value)
Default constructor, which initializes the variant to a default constructed instance of its 0'th alte...
Definition variant.hpp:650
Definition array_exceptions_disabled.cpp:11
constexpr std::size_t variant_size_v
Declaration of variant_size_v. Default to variant_npos.
Definition traits.hpp:38
constexpr std::size_t variant_npos
Special value used as the return value of variant::index() when variant::valueless_by_exception() is ...
Definition traits.hpp:34
constexpr std::size_t variant_size_v< variant< Ts... > const >
Specialization of variant_size_v for const variant.
Definition traits.hpp:48
constexpr std::size_t variant_size_v< variant< Ts... > >
Specialization of variant_size_v for variant.
Definition traits.hpp:43
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10