tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
variant_alternative_selector.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2// SPDX-FileCopyrightText: Copyright (C) 2024 Tobias Hienzsch
3
4#ifndef TETL_VARIANT_VARIANT_ALTERNATIVE_SELECTOR_HPP
5#define TETL_VARIANT_VARIANT_ALTERNATIVE_SELECTOR_HPP
6
7#include <etl/_type_traits/declval.hpp>
8#include <etl/_variant/overload.hpp>
9
10namespace etl::detail {
11
12template <typename T>
13struct variant_alternative_selector_single {
14 auto operator()(T /*t*/) const -> T;
15};
16
17template <typename... Ts>
18inline constexpr auto variant_alternative_selector = etl::overload{variant_alternative_selector_single<Ts>{}...};
19
20template <typename T, typename... Ts>
21using variant_alternative_selector_t = decltype(variant_alternative_selector<Ts...>(etl::declval<T>()));
22
23} // namespace etl::detail
24
25#endif // TETL_VARIANT_VARIANT_ALTERNATIVE_SELECTOR_HPP
Definition adjacent_find.hpp:9