16 #ifndef OPENKALMAN_COLLECTIONS_GET_HPP 17 #define OPENKALMAN_COLLECTIONS_GET_HPP 25 template<std::
size_t i>
29 template<
typename Arg> requires
30 requires {
get_element(std::declval<Arg>(), std::integral_constant<std::size_t, i>{}); }
32 template<
typename Arg,
typename = std::
void_t<decltype(get_element(std::declval<Arg>(), std::
integral_constant<std::
size_t, i>{}))>>
34 constexpr decltype(
auto)
35 operator() [[nodiscard]] (Arg&& arg)
const 37 return get_element(std::forward<Arg>(arg), std::integral_constant<std::size_t, i>{});
48 template<std::
size_t i>
Namespace for collections.
Definition: collections.hpp:27
Definition for collections::get_element.
decltype(auto) constexpr get_element(Arg &&arg, I i)
A generalization of std::get and the range subscript operator.
Definition: get_element.hpp:122