This file is indexed.

/usr/include/ThePEG/Utilities/HoldFlag.h is in libthepeg-dev 1.8.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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// -*- C++ -*-
//
// HoldFlag.h is a part of ThePEG - Toolkit for HEP Event Generation
// Copyright (C) 1999-2011 Leif Lonnblad
//
// ThePEG is licenced under version 2 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
#ifndef ThePEG_HoldFlag_H
#define ThePEG_HoldFlag_H
// This is the declaration of the HoldFlag class.

namespace ThePEG {

template <typename T = bool>
/**
 * <code>HoldFlag</code> objects are used to temporarily change the value
 * of an object, restoring the original value when the
 * <code>HoldFlag</code> object is destructed.
 *
 * @see Level
 */
class HoldFlag {

public:

  /**
   * Constructor setting a temporary value for the given object.
   * @param newFlag the object which value is temporarily changed.
   * @param holdFlag the temporary value for the newFlag object.
   */
  HoldFlag(T & newFlag, const T & holdFlag)
    : theFlag(newFlag), oldFlag(holdFlag) { std::swap(theFlag, oldFlag); }

  /**
   * Constructor setting the a temporary value for the given object.
   * @param newFlag the object which value is temporarily changed.
   * @param holdFlag the temporary value for the newFlag object.
   * @param finalFlag the newFlag object will be given the value
   * finalFlag when the HoldFlag object is destroyed.
   */
  HoldFlag(T & newFlag, const T & holdFlag, const T & finalFlag)
    : theFlag(newFlag), oldFlag(holdFlag) 
  {
    std::swap(theFlag, oldFlag);
    oldFlag = finalFlag;
  }

  /**
   * Destructor. Restores the corresponding object to its original
   * value.
   */
  ~HoldFlag() { std::swap(theFlag, oldFlag); }

private:

  /**
   * The object to be changed.
   */
  T & theFlag;

  /**
   * The value which will be restored when this is destroyed.
   */
  T oldFlag;

  /**
   * Default constructor is private and not implemented.
   */
  HoldFlag();

  /**
   * Copy constructor is private and not implemented.
   */
  HoldFlag(const HoldFlag &);

  /**
   * Assignment is private and not implemented.
   */
  HoldFlag & operator=(const HoldFlag &);

};

/**
 * Specialization of HoldFlag for boolean variables.
 */
template <>
class HoldFlag<bool> {

public:

  /**
   * Constructor setting the a temporary value for the bool variable.
   * @param newFlag the boolean variable which value is temporarily changed.
   * @param holdFlag the temporary value for the newFlag variable.
   */
  HoldFlag(bool & newFlag, bool holdFlag = true)
    : theFlag(newFlag), oldFlag(newFlag) { theFlag = holdFlag; }

  /**
   * Constructor setting the a temporary value for the bool variable.
   * @param newFlag the boolean variable which value is temporarily changed.
   * @param holdFlag the temporary value for the newFlag variable.
   * @param finalFlag the newFlag variable will be given the value
   * finalFlag when the HoldFlag object is destroyed.
   */
  HoldFlag(bool & newFlag, bool holdFlag, bool finalFlag)
    : theFlag(newFlag), oldFlag(finalFlag) { theFlag = holdFlag; }

  /**
   * Destructor. Restores the corresponding variable to its original
   * value.
   */
  ~HoldFlag() { theFlag = oldFlag; }

private:

  /**
   * The variable to be changed.
   */
  bool & theFlag;

  /**
   * The value which will be restored when this is destroyed.
   */
  bool oldFlag;

  /**
   * Default constructor is private and not implemented.
   */
  HoldFlag();

  /**
   * Copy constructor is private and not implemented.
   */
  HoldFlag(const HoldFlag &);

  /**
   * Assignment is private and not implemented.
   */
  HoldFlag & operator=(const HoldFlag &);

};

}

#endif /* ThePEG_HoldFlag_H */