Re[2]: Как передать в Синглтон Майерса параметры конструктор
От: einstein  
Дата: 31.07.06 18:09
Оценка:
Здравствуйте, einstein, Вы писали:

E>Здравствуйте, Аноним, Вы писали:


А>>
А>>template <typename BaseT>
А>>class Singleton
А>>    : public BaseT
А>>    , private boost::noncopyable
А>>{
А>>private:
А>>    Singleton()
А>>    {
А>>    }

А>>    ~Singleton()
А>>    {
А>>    }

А>>public:
А>>    static Singleton& instance(Singleton* p = 0)
А>>    {
           static std::auto_ptr<Singleton> _instance;
А>>        if (p) _instance.reset(p);
           else
           {
              if (!_instance) _instance.reset(new Singleton);
           }
А>>        return _instance.get();
А>>    }
А>>};
А>>



X& x = Singleton<X>::instance(new X(....));



хм.. ошибочка вышла.
Вот так вроде будет то, что хотелось.
Правда потоконебезопасно, впрочем как и исходный синглтон Мейерса.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.