17 #ifndef OPENKALMAN_TUPLE_FILL_VIEW_HPP 18 #define OPENKALMAN_TUPLE_FILL_VIEW_HPP 20 #include <type_traits> 31 template<std::
size_t N,
typename T>
37 template<
typename aT = T, std::enable_if_t<std::is_default_constructible_v<aT>,
int> = 0>
43 template<
typename Arg> requires std::constructible_from<T, Arg&&>
45 template<
typename Arg, std::enable_if_t<std::is_constructible_v<T, Arg&&>,
int> = 0>
53 constexpr T
value()
const {
return t; }
60 template<std::
size_t i> requires (i < N)
62 template<std::
size_t i, std::enable_if_t<i < N,
int> = 0>
65 get(const repeat_tuple_view& v)
75 template<
size_t i> requires (i < N)
77 template<
size_t i, std::enable_if_t<i < N,
int> = 0>
80 get(repeat_tuple_view&& v)
82 return std::move(v).t;
95 template<std::
size_t N,
typename T>
96 struct tuple_size<OpenKalman::collections::internal::repeat_tuple_view<N, T>> : std::integral_constant<size_t, N> {};
99 template<std::
size_t i, std::
size_t N,
typename T>
100 struct tuple_element<i,
OpenKalman::collections::internal::repeat_tuple_view<N, T>>
102 static_assert(i < N);
108 #endif //OPENKALMAN_TUPLE_FILL_VIEW_HPP constexpr T value() const
Definition: tuple_fill_view.hpp:53
The root namespace for OpenKalman.
Definition: basics.hpp:34
Definition: tuple_fill_view.hpp:32
Definition: tuple_like_to_tuple.hpp:24