/usr/include/ThePEG/Utilities/Level.h is in libthepeg-dev 1.8.0-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 | // -*- C++ -*-
//
// Level.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_Level_H
#define ThePEG_Level_H
// This is the declaration of the Level class.
#include "ThePEG/Config/ThePEG.h"
namespace ThePEG {
/**
* Level is used to increment temporarily a given integer
* variable. Everytime a Level object is created with a given integer
* variable as argument, the variable will be incremented. When the
* corresponding Level object is destroyed, the associated integer
* variable is decremented again.
*
* @see HoldFlag
*/
template <typename T = int>
class Level {
public:
/** Constructor taking an integer variable which is incremented. A
* reference to the variable will be stored. */
Level(T & newLevel) : theLevel(++newLevel) {}
/** Destructor decrementing the associated integer variable. */
~Level() { --theLevel; }
private:
/** A reference to the integer variable to be decremmmented when
* this object is destroyed. */
T & theLevel;
/**
* Default constructor is private and not implemented.
*/
Level();
/**
* Copy constructor is private and not implemented.
*/
Level(const Level &);
/**
* Assignment is private and not implemented.
*/
Level & operator=(const Level &);
};
}
#endif /* ThePEG_Level_H */
|