C++ singleton using templates
You cannot really say that it's a good or bad implementation. It depends, but this doesn't look ok to me: class A : public Singleton&lt;A&gt;.
You don't need to inherit from it to use it: Singleton&lt;A&gt;::instance()

If you want to to use it as you wrote: A&amp; s = A::getInstance(); then probably A's ctor/dtor shouldn't be public.