<li> <p>
Fixed: The <code>Subscriptor</code> uses a counter to
- count how many <code>ObserverPointer</code> objects subscribe
+ count how many <code>SmartPointer</code> objects subscribe
to the pointed-to object. This counter needs to be a volatile variable
in multithreaded mode, to avoid false compiler optimizations based on
the assumption that the variable cannot change between two subsequent
New: Class <code>Subscriptor</code> receives a
text argument allowing to identify the violating pointer more
easily. The additional feature is being incorporated into <code
- class="class">ObserverPointer</code> constructors throughout the
+ class="class">SmartPointer</code> constructors throughout the
library.
<br>
(GK, 2005/03/16)
(WB 2006/08/02)
</p>
- <li> <p> Changed: When there is still a <code>ObserverPointer</code> object
+ <li> <p> Changed: When there is still a <code>SmartPointer</code> object
pointing to another object at the time it is destroyed, this would cause
the program to be aborted. However, there are cases where this is not
desirable, for example here:
</li>
<li>
- Changed: ObserverPointer and Subscriptor use a `std::string`
+ Changed: SmartPointer and Subscriptor use a `std::string`
instead of a `const char *` for subscriber identification. As a result,
subscriber strings are no longer compared by their memory address but instead
by their content.
</li>
<li>
- Changed: The class Subscriptor and ObserverPointer check for dangling pointers and
+ Changed: The class Subscriptor and SmartPointer check for dangling pointers and
use-after-move. The destructor of Subscriptor doesn't signal an error when there
is still an object subscribed to it. Instead, validity is checked when
- dereferencing the ObserverPointer object.
+ dereferencing the SmartPointer object.
<br>
(Daniel Arndt, 2018/11/02)
</li>