4#ifndef TETL_VARIANT_VARIANT_ALTERNATIVE_HPP
5#define TETL_VARIANT_VARIANT_ALTERNATIVE_HPP
7#include <etl/_mpl/at.hpp>
8#include <etl/_type_traits/add_const.hpp>
9#include <etl/_type_traits/add_cv.hpp>
10#include <etl/_type_traits/add_volatile.hpp>
11#include <etl/_variant/variant_fwd.hpp>
15template <size_t Idx,
typename... Ts>
16struct variant_alternative<Idx,
variant<Ts...>> {
17 static_assert(Idx <
sizeof...(Ts));
21template <size_t I,
typename T>
22using variant_alternative_t =
typename variant_alternative<I, T>::type;
24template <size_t Idx,
typename T>
25struct variant_alternative<Idx, T
const> {
26 using type = add_const_t<variant_alternative_t<Idx, T>>;
29template <size_t Idx,
typename T>
30struct variant_alternative<Idx, T
volatile> {
31 using type = add_volatile_t<variant_alternative_t<Idx, T>>;
34template <size_t Idx,
typename T>
35struct variant_alternative<Idx, T
const volatile> {
36 using type = add_cv_t<variant_alternative_t<Idx, T>>;
Definition adjacent_find.hpp:9
Definition variant.hpp:99