tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
variant_size.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2
3#ifndef TETL_VARIANT_VARIANT_SIZE_HPP
4#define TETL_VARIANT_VARIANT_SIZE_HPP
5
9
10namespace etl {
11
12template <typename... Ts>
13struct variant_size<variant<Ts...>> : integral_constant<etl::size_t, sizeof...(Ts)> { };
14
15template <typename T>
16struct variant_size<T const> : variant_size<T>::type { };
17
18template <typename T>
19struct variant_size<T volatile> : variant_size<T>::type { };
20
21template <typename T>
22struct variant_size<T const volatile> : variant_size<T>::type { };
23
24template <typename T>
25inline constexpr auto variant_size_v = variant_size<T>::value;
26
27} // namespace etl
28
29#endif // TETL_VARIANT_VARIANT_SIZE_HPP
Definition adjacent_find.hpp:8
constexpr auto variant_size_v
Definition variant_size.hpp:25
Definition integral_constant.hpp:9
Definition variant_fwd.hpp:21
Definition variant.hpp:98