Здравствуйте, 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(....));
хм.. ошибочка вышла.
Вот так вроде будет то, что хотелось.
Правда потоконебезопасно, впрочем как и исходный синглтон Мейерса.