Спасибо за статью.
Однако хотелось бы отметить, что в ней не указан т.н. Meyer's Singleton.
Он более безопасно (имхо) решает проблему удаления одиночки, достаточно прозрачен в реализации, и его я в основном и использую
struct theT
{
static T& Instance () {
static T self; // здесь можно провести инициализацию связки стат. объектов.
// для этого удобно использовать конструктор локального
// класса, статическая переменная которого определяется
// в этом методе
return self;
}
};
Этот прием описан у Александреску в главе 6 Implementing Singletons