Boost logo

Boost Users :

From: Robert Dailey (rcdailey_at_[hidden])
Date: 2007-12-05 17:02:02


Your suggestion is good and all, however it doesn't really give me much
benefit. If I'm going to go through the trouble to do that, I might as well
go ahead and just not use the singleton object you have. The reason why I'm
looking for a base class to derive from is so that I don't explicitly have
to re-write the same singleton implementation details for every class,
listed below:

- Generic public static "Instance()" function
- Generic public static "Release()" method (if your singleton instance is on
the heap. Stack instances do not require this)
- Declaration/definition of the actual singleton static variable
- Preventing the singleton class from being instantiated (this means the
base class needs to somehow prevent the derived class from being
instantiated outside of itself).

If I can find a class that automates this for me JUST by deriving from it,
that would be perfect. However this may be too much to ask? Your singleton
idea is great, however it doesn't exactly fulfill what I'm looking for. I
apologize for not having elaborated on this thoroughly to begin with.

On Dec 5, 2007 3:53 PM, Sohail Somani <sohail_at_[hidden]> wrote:

> On Wed, 05 Dec 2007 15:35:35 -0600, Robert Dailey wrote:
>
> > How do you prevent people from instantiating Object (in your example)?
> >
> > Also, I was more or less looking for a member-specific way of doing the
> > singleton access. For example:
> >
> > Object::instance()
>
> You can do something like:
>
> struct Object
> {
> friend class singleton<Object>;
> Object& instance()
> {
> return singleton<Object>::instance();
> }
>
> private:
> Object(); ~Object();
> };
>
> I'm sure there is a nicer way to wrap that up.
>
> --
> Sohail Somani
> http://uint32t.blogspot.com
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net