15#ifndef dealii_cxx17_tuple_h
16#define dealii_cxx17_tuple_h
25#ifndef DEAL_II_HAVE_CXX17
26 template <
typename F,
typename Tuple,
size_t... S>
28 apply_impl(
F &&fn, Tuple &&t, std::index_sequence<S...>)
29 ->
decltype(std::forward<F>(fn)(std::get<S>(std::forward<Tuple>(t))...))
31 return std::forward<F>(fn)(std::get<S>(std::forward<Tuple>(t))...);
34 template <
typename F,
typename Tuple>
36 apply(
F &&fn, Tuple &&t) ->
decltype(apply_impl(
38 std::forward<Tuple>(t),
39 std::make_index_sequence<
40 std::tuple_size<
typename std::remove_reference<Tuple>::type>::value>()))
42 std::size_t
constexpr tSize =
43 std::tuple_size<typename std::remove_reference<Tuple>::type>::value;
44 return apply_impl(std::forward<F>(fn),
45 std::forward<Tuple>(t),
46 std::make_index_sequence<tSize>());
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
Tensor< 2, dim, Number > F(const Tensor< 2, dim, Number > &Grad_u)