This file is indexed.

/usr/include/sigc++-2.0/sigc++/adaptors/deduce_result_type.h is in libsigc++-2.0-dev 2.4.0-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
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// -*- c++ -*-
/* Do not edit! -- generated file */
/*
*/
#ifndef _SIGC_ADAPTORS_DEDUCE_RESULT_TYPE_H_
#define _SIGC_ADAPTORS_DEDUCE_RESULT_TYPE_H_
#include <sigc++/functors/functor_trait.h>

namespace sigc {

/** A hint to the compiler.
 * Functors which have all methods based on templates
 * should publicly inherit from this hint and define 
 * a nested template class @p deduce_result_type that
 * can be used to deduce the methods' return types.
 *
 * adaptor_base inherits from the functor_base hint so
 * derived types should also have a result_type defined.
 *
 * Adaptors don't inherit from this type directly. They use
 * use sigc::adapts as a base type instead. sigc::adaptors
 * wraps arbitrary functor types as well as function pointers
 * and class methods.
 *
 * @ingroup adaptors
 */
struct adaptor_base : public functor_base {};


/** Deduce the return type of a functor.
 * <tt>typename deduce_result_type<functor_type, list of arg_types>::type</tt>
 * deduces a functor's result type if @p functor_type inherits from
 * sigc::functor_base and defines @p result_type or if @p functor_type
 * is actually a (member) function type. Multi-type functors are not
 * supported.
 *
 * sigc++ adaptors use
 * <tt>typename deduce_result_type<functor_type, list of arg_types>::type</tt>
 * to determine the return type of their <tt>templated operator()</tt> overloads.
 *
 * Adaptors in turn define a nested template class @p deduce_result_type
 * that is used by template specializations of the global deduce_result_type
 * template to correctly deduce the return types of the adaptor's suitable
 * <tt>template operator()</tt> overload.
 *
 * @ingroup adaptors
 */
template <class T_functor,
          class T_arg1=void, class T_arg2=void, class T_arg3=void, class T_arg4=void, class T_arg5=void, class T_arg6=void, class T_arg7=void,
          bool I_derives_adaptor_base=is_base_and_derived<adaptor_base,T_functor>::value>
struct deduce_result_type
  { typedef typename functor_trait<T_functor>::result_type type; };

#ifndef DOXYGEN_SHOULD_SKIP_THIS
/** Deduce the return type of a functor.
 * This is the template specialization of the sigc::deduce_result_type template
 * for 0 arguments.
 */
template <class T_functor>
struct deduce_result_type<T_functor, void, void, void, void, void, void, void, true>
  { typedef typename T_functor::template deduce_result_type<>::type type; };

/** Deduce the return type of a functor.
 * This is the template specialization of the sigc::deduce_result_type template
 * for 1 arguments.
 */
template <class T_functor, class T_arg1>
struct deduce_result_type<T_functor, T_arg1, void, void, void, void, void, void, true>
  { typedef typename T_functor::template deduce_result_type<T_arg1>::type type; };

/** Deduce the return type of a functor.
 * This is the template specialization of the sigc::deduce_result_type template
 * for 2 arguments.
 */
template <class T_functor, class T_arg1, class T_arg2>
struct deduce_result_type<T_functor, T_arg1, T_arg2, void, void, void, void, void, true>
  { typedef typename T_functor::template deduce_result_type<T_arg1, T_arg2>::type type; };

/** Deduce the return type of a functor.
 * This is the template specialization of the sigc::deduce_result_type template
 * for 3 arguments.
 */
template <class T_functor, class T_arg1, class T_arg2, class T_arg3>
struct deduce_result_type<T_functor, T_arg1, T_arg2, T_arg3, void, void, void, void, true>
  { typedef typename T_functor::template deduce_result_type<T_arg1, T_arg2, T_arg3>::type type; };

/** Deduce the return type of a functor.
 * This is the template specialization of the sigc::deduce_result_type template
 * for 4 arguments.
 */
template <class T_functor, class T_arg1, class T_arg2, class T_arg3, class T_arg4>
struct deduce_result_type<T_functor, T_arg1, T_arg2, T_arg3, T_arg4, void, void, void, true>
  { typedef typename T_functor::template deduce_result_type<T_arg1, T_arg2, T_arg3, T_arg4>::type type; };

/** Deduce the return type of a functor.
 * This is the template specialization of the sigc::deduce_result_type template
 * for 5 arguments.
 */
template <class T_functor, class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5>
struct deduce_result_type<T_functor, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, void, void, true>
  { typedef typename T_functor::template deduce_result_type<T_arg1, T_arg2, T_arg3, T_arg4, T_arg5>::type type; };

/** Deduce the return type of a functor.
 * This is the template specialization of the sigc::deduce_result_type template
 * for 6 arguments.
 */
template <class T_functor, class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6>
struct deduce_result_type<T_functor, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, void, true>
  { typedef typename T_functor::template deduce_result_type<T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6>::type type; };

/** Deduce the return type of a functor.
 * This is the template specialization of the sigc::deduce_result_type template
 * for 7 arguments.
 */
template <class T_functor, class T_arg1, class T_arg2, class T_arg3, class T_arg4, class T_arg5, class T_arg6, class T_arg7>
struct deduce_result_type<T_functor, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, true>
  { typedef typename T_functor::template deduce_result_type<T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7>::type type; };

#endif // DOXYGEN_SHOULD_SKIP_THIS

} /* namespace sigc */
#endif /* _SIGC_ADAPTORS_DEDUCE_RESULT_TYPE_H_ */