Brian.. Good point, as this pattern only provides a weak singleton
guarantee. As I noted in the code, there is no strong singleton
guarantee with this pattern due to the possibility of concurrency
conflicts during registration, so that more than one instance of the
base class could be created if more than one subclass read the registry
at "almost exactly the same time." Only one instance would be
successfully registered, however, and the base class "global point of
access" would only return a reference to a single instance or throw.
I have now added a note pointing out that a poorly designed subclass
could also lead to more than one instance of the base class.
Regards,
Jeff