tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
make_from_tuple.hpp
Go to the documentation of this file.
1
2// SPDX-License-Identifier: BSL-1.0
3
4#ifndef TETL_TUPLE_MAKE_FROM_TUPLE_HPP
5#define TETL_TUPLE_MAKE_FROM_TUPLE_HPP
6
14
15namespace etl {
16
17template <typename T, typename Tuple>
18[[nodiscard]] constexpr auto make_from_tuple(Tuple&& t) -> T
19{
20 return [&]<etl::size_t... I>(index_sequence<I...> /*i*/) {
21 using etl::get;
22 return T(get<I>(etl::forward<Tuple>(t))...);
24}
25
26} // namespace etl
27
28#endif // TETL_TUPLE_MAKE_FROM_TUPLE_HPP
Definition adjacent_find.hpp:8
constexpr auto make_from_tuple(Tuple &&t) -> T
Definition make_from_tuple.hpp:18
etl::make_integer_sequence< etl::size_t, Size > make_index_sequence
Definition index_sequence.hpp:15
constexpr auto get(complex< X > &z) noexcept -> X &
Definition complex.hpp:92
etl::integer_sequence< etl::size_t, Ints... > index_sequence
Definition index_sequence.hpp:12
constexpr auto forward(remove_reference_t< T > &param) noexcept -> T &&
Forwards lvalues as either lvalues or as rvalues, depending on T. When t is a forwarding reference (a...
Definition forward.hpp:18
TETL_BUILTIN_SIZET size_t
etl::size_t is the unsigned integer type of the result of the sizeof operator.
Definition size_t.hpp:14