This file is indexed.

/usr/include/sigc++-1.2/sigc++/macros/hide.h.m4 is in libsigc++-1.2-dev 1.2.7-2.

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
// -*- c++ -*-
dnl  hide.h.m4  -  hide one or two of the signal's arguments
dnl  
//   Copyright 2000, Martin Schulze <MHL.Schulze@t-online.de>
//   Copyright 2001, Karl Einar Nelson
dnl
dnl  This library is free software; you can redistribute it and/or
dnl  modify it under the terms of the GNU Lesser General Public
dnl  License as published by the Free Software Foundation; either
dnl  version 2 of the License, or (at your option) any later version.
dnl
dnl  This library is distributed in the hope that it will be useful,
dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
dnl  Lesser General Public License for more details.
dnl
dnl  You should have received a copy of the GNU Lesser General Public
dnl  License along with this library; if not, write to the Free Software
dnl  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
dnl
include(template.macros.m4)
#ifndef __header__
#define __header__

/** @defgroup hide
 * SigC::hide() alters a Slot in that it adds one or two parameters
 * whose values are ignored on invocation of the Slot.
 * Thus you can discard one or more of the arguments of a Signal.
 * You have to specify the type of the parameters to ignore as
 * template arguments as in
 * @code
 * SigC::Slot1<void, int> slot1;
 * SigC::Slot0<void> slot2 = SigC::hide<int>(slot1);
 * @endcode
 *
 * SigC::hide_return() alters the Slot by
 * dropping its return value, thus converting it to a void Slot.
 *
 * Simple sample usage:
 *
 * @code
 * int f(int);
 * SigC::Slot1<void, int> s = SigC::hide_return( slot(&f) );
 * @endcode
 */

#include <sigc++/adaptor.h>

#ifdef SIGC_CXX_NAMESPACES
namespace SigC
{
#endif

dnl
dnl ADAPTOR_HIDE(R,[P1..PN],[H1..HM])
dnl
define([ADAPTOR_HIDE],[dnl
template <LIST(class R,ARG_CLASS($1),ARG_CLASS($2))>
struct [AdaptorHide]NUM($1)[_]NUM($2)_
  {
    typedef typename Trait<R>::type RType;
    static RType proxy(LIST(ARG_REF($1),ARG_REFTYPE($2),[void *data])) 
      {
        AdaptorSlotNode& node = *(AdaptorSlotNode*)(data);
        SlotNode* slot=static_cast<SlotNode*>(node.slot_.impl());
        return ((typename __SLOT__(R,$1)::Proxy)(slot->proxy_))(LIST(ARG_NAME($1),slot));
      }
  };

/// @ingroup hide
template <LIST(ARG_CLASS($2), class R, ARG_CLASS($1))>
__SLOT__(R,[$1],[$2])
hide(const __SLOT__(R,$1)& s)
  {
    return new AdaptorSlotNode( (FuncPtr)(&[AdaptorHide]NUM($1)[_]NUM($2)_<LIST(R,ARG_TYPE($1),ARG_TYPE($2))>::proxy), s );
  }

])dnl ADAPTOR_HIDE

ADAPTOR_HIDE(ARGS(P,0),ARGS(H,1))
ADAPTOR_HIDE(ARGS(P,0),ARGS(H,2))
ADAPTOR_HIDE(ARGS(P,1),ARGS(H,1))
ADAPTOR_HIDE(ARGS(P,1),ARGS(H,2))
ADAPTOR_HIDE(ARGS(P,2),ARGS(H,1))
ADAPTOR_HIDE(ARGS(P,2),ARGS(H,2))
ADAPTOR_HIDE(ARGS(P,3),ARGS(H,1))
ADAPTOR_HIDE(ARGS(P,3),ARGS(H,2))
ADAPTOR_HIDE(ARGS(P,4),ARGS(H,1))

#ifdef SIGC_CXX_NAMESPACES
}  // namespace SigC
#endif

#endif  // __header__