This file is indexed.

/usr/include/dune/common/std/apply.hh is in libdune-common-dev 2.5.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
#ifndef DUNE_COMMON_STD_APPLY_HH
#define DUNE_COMMON_STD_APPLY_HH

#if __cpp_lib_apply
  #include <tuple>
#elif __cpp_lib_experimental_apply
  #include <experimental/tuple>
#else
  #include <cstddef>
  #include <utility>
  #include <tuple>
#endif



namespace Dune
{

  namespace Std
  {

#if __cpp_lib_apply

    using std::apply;

#elif __cpp_lib_experimental_apply

    using std::experimental::apply;

#else

    namespace Impl
    {
      template<class F, class ArgTuple, std::size_t... i>
      decltype(auto) applyHelper(F&& f, ArgTuple&& args, std::index_sequence<i...>)
      {
        return f(std::get<i>(args)...);
      }
    } // namespace Impl



    /**
     * \brief Apply function with arguments given as tuple
     *
     * \param f A callable object
     * \param args Tuple of arguments
     *
     * This will call the function with arguments generated by unpacking the tuple.
     */
    template<class F, class ArgTuple>
    decltype(auto) apply(F&& f, ArgTuple&& args)
    {
      auto indices = std::make_index_sequence<std::tuple_size<std::decay_t<ArgTuple>>::value>();
      return Impl::applyHelper(std::forward<F>(f), std::forward<ArgTuple>(args), indices);
    }

#endif

  } // namespace Std
} // namespace Dune

#endif // #ifndef DUNE_COMMON_STD_APPLY_HH