42class LeakedObjectDetector
46 LeakedObjectDetector()
noexcept { ++(getCounter().numObjects); }
47 LeakedObjectDetector (
const LeakedObjectDetector&)
noexcept { ++(getCounter().numObjects); }
49 LeakedObjectDetector& operator= (
const LeakedObjectDetector&)
noexcept =
default;
51 ~LeakedObjectDetector()
53 if (--(getCounter().numObjects) < 0)
55 DBG (
"*** Dangling pointer deletion! Class: " << getLeakedObjectClassName());
77 LeakCounter() =
default;
81 if (numObjects.
value > 0)
83 DBG (
"*** Leaked objects detected: " << numObjects.
value <<
" instance(s) of class " << getLeakedObjectClassName());
99 static const char* getLeakedObjectClassName()
101 return OwnerClass::getLeakedObjectClassName();
104 static LeakCounter& getCounter()
noexcept
106 static LeakCounter counter;