15 #ifndef dealii_cxx17_tuple_h
16 #define dealii_cxx17_tuple_h
22 #ifndef __cpp_lib_apply
24 #endif // __cpp_lib_apply
29 #ifndef __cpp_lib_apply
30 template <
typename F,
typename Tuple,
size_t... S>
32 apply_impl(
F &&fn, Tuple &&t, std_cxx14::index_sequence<S...>)
33 -> decltype(std::forward<F>(fn)(std::get<S>(std::forward<Tuple>(t))...))
35 return std::forward<F>(fn)(std::get<S>(std::forward<Tuple>(t))...);
38 template <
typename F,
typename Tuple>
42 std::forward<Tuple>(t),
43 std_cxx14::make_index_sequence<
44 std::tuple_size<
typename std::remove_reference<Tuple>::type>::
value>()))
46 std::size_t constexpr tSize =
47 std::tuple_size<typename std::remove_reference<Tuple>::type>
::value;
49 std::forward<Tuple>(t),
50 std_cxx14::make_index_sequence<tSize>());
54 #endif // __cpp_lib_apply