JAPAn
Just Another Parity Analyzer
Loading...
Searching...
No Matches
QwObjectCounter.h
Go to the documentation of this file.
1/**
2 * \file QwObjectCounter.h
3 * \brief Memory management class to count object instantiations
4 *
5 * \author wdconinc
6 * \date Nov 12, 2010
7 */
8
9#pragma once
10
11/**
12 * \class QwObjectCounter
13 * \ingroup QwAnalysis
14 *
15 * \brief Memory management structure to count objects
16 *
17 * This memory counter object can be publicly inherited from by Qweak classes.
18 * It applies the "curiously recurring template pattern", and I didn't make up
19 * that name.
20 */
21template<typename T>
23
24 public:
25
26 /// Default constructor
31 /// Copy constructor
36 /// Destructor
37 virtual ~QwObjectCounter() {
39 };
40
41
42 /// Get number of objects ever created
43 static size_t GetObjectsCreated() {
44 return fObjectsCreated;
45 };
46
47 /// Get number of objects still alive
48 static size_t GetObjectsAlive() {
49 return fObjectsAlive;
50 };
51
52 private:
53
54 /// Number of objects ever created
55 static size_t fObjectsCreated;
56 /// Number of objects still alive
57 static size_t fObjectsAlive;
58
59};
60
61/// Initialize objects ever created counter
62template<typename T>
64
65/// Initialize objects still alive counter
66template<typename T>
static size_t GetObjectsAlive()
Get number of objects still alive.
virtual ~QwObjectCounter()
Destructor.
static size_t fObjectsAlive
Number of objects still alive.
static size_t fObjectsCreated
Number of objects ever created.
static size_t GetObjectsCreated()
Get number of objects ever created.
QwObjectCounter()
Default constructor.
QwObjectCounter(const QwObjectCounter &)
Copy constructor.