5 #ifndef VCCC_TUPLE_MAKE_FROM_TUPLE_HPP
6 #define VCCC_TUPLE_MAKE_FROM_TUPLE_HPP
19 template<
typename T,
typename Tuple, std::size_t... I>
20 constexpr T make_from_tuple_impl(Tuple&& t, std::index_sequence<I...>) {
21 return T(std::get<I>(std::forward<Tuple>(t))...);
24 template<
typename T,
typename Tuple,
typename I>
25 struct is_constructible_from_tuple_impl;
27 template<
typename T,
typename Tuple, std::size_t... I>
28 struct is_constructible_from_tuple_impl<T, Tuple,
std::index_sequence<I...>>
29 : std::is_constructible<T, decltype(std::get<I>(std::declval<Tuple>()))...> {};
31 template<
typename T,
typename Tuple>
32 struct is_constructible_from_tuple
33 : is_constructible_from_tuple_impl<T,
35 std::make_index_sequence<
36 std::tuple_size<std::remove_reference_t<Tuple>>::value>> {};
80 return internal::make_from_tuple_impl<T>(
81 std::forward<Tuple>(t),
82 std::make_index_sequence<std::tuple_size<std::remove_reference_t<Tuple>>::
value>{});
constexpr T make_from_tuple(Tuple &&t)
construct an object with a tuple of arguments
Definition: make_from_tuple.hpp:79
Definition: matrix.hpp:495
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35