C ++: шаблоны и одноэлементный шаблон

Так получилось, что мне нужен печально известный шаблон singleton. А еще лучше, так получилось, что мне понадобились печально известные шаблоны C ++ в сочетании с этим шаблоном. Итак, меня беспокоит следующее:

template <class T>
class PDatabaseTable
{
    ...

    static PDatabaseTable <T> & instance()
    {
        static PDatabaseTable <T> singleton;
        return singleton;
    }

    ...
};

Это типичный способ реализации синглтона, который должен быть создан при первом использовании. Теперь у нас есть статическая переменная singleton . Поскольку функция instance () может вызываться из нескольких разных модулей, возникает вопрос: будет ли только один экземпляр объекта для любого данного типа T , или каждый модуль будет создавать экземпляр собственный синглтон?

7
задан Septagram 21 April 2011 в 04:50
поделиться