Boost logo

Boost :

From: Jason Hise (chaos_at_[hidden])
Date: 2005-01-14 14:06:17


Dave Handley wrote:

>I would have normally expected singleton creation to be handled with a
>lazy creation policy. This means that they are not created until
>used, and if not used never created. Then destruction would take
>place with the standard destruction policy. If you want to force
>creation at an earlier stage in the program execution then just call
>GetInstance() and throw away the result.
>
>
Ok, thanks for clearing that up.

>BTW, regarding your concerns on integrating with say boost.thread, why
>not place all dependencies under a pre-processor guard, that enables
>threading. Then if you want to enable threading, you would set the
>pre-processor guard (like the smart pointers implementations), but
>also include the correct policy in your template specification. This
>means that under those circumstances where you want both threaded and
>un-threaded singletons, you can achieve this by turning on the boost
>directive, and using the policies accordingly. Without the
>pre-processor directive you simply would not have access to the
>multi-threaded policies.
>
What would be the problem with just putting policies involving
multi-threading separate headers? I think that

#include <singleton.h>
#include <singleton_multithreaded_policies.h>

is clearer than

#define USING_SINGLETON_MULTITHREADED
#include <singleton.h>

and separates dependencies better.

-Jason


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk