Boost logo

Boost :

From: Pavel Vozenilek (pavel_vozenilek_at_[hidden])
Date: 2005-05-05 12:59:14

"Tom Brinkman" wrote:

> In the singleton documentation it states that "singletons" could/should
> replace all global variables in an application. Does this comment
> apply to global vectors as well.
> I have a vector of boost::any which I've declared
> static in a resource class.
> <code below>
> struct resource
> {
> static std::vector<boost::any> resources;
> ...<more>...
> };
> std::vector<boost::any> resource::resouces;
> How would one incorporate this global vector into
> the singleton library to take advantage of its facilities.
The wording should be less definitive, IMHO.

a) By wrapping the vector in a class and then deriving
    singleton from result.

struct resource : basic_singleton<resource>
    std::vector<boost::any> any_resources;

resource::pointer ptr;

b) Or if you only want to destroy the resource at certain
    moment when the application closes, you may do:

// global variable but destroyed before singletons with higher longevity
shared_ptr <vector<any> > > my_resources ( new vector<any>() );
singleton::store_resource ( my_resources );


Boost list run by bdawes at, gregod at, cpdaniel at, john at