|
Boost : |
From: Anthony Williams (anthony_w.geo_at_[hidden])
Date: 2005-09-08 16:47:10
Alexander Terekhov <terekhov_at_[hidden]> writes:
> Anthony Williams wrote:
>> However, our once_flag can store a result of a user-defined type, which may
>> therefore require proper destruction, so that it can notify other processes,
>> send network packets, write to a file, or whatever; this therefore needs
>> dealing with somehow before process termination.
>
> User would then call _destroy() or _reset() (the later is likely
> to be called multiple times). I won't tell you "how". Trade secret.
Don't be such a tease!
class X
{
public
X()
{
acquire_resource();
}
void do_something();
~X()
{
release_resource();
}
};
X get_X();
void f()
{
static once_flag once;
call_once(get_X,once).do_something();
// how do we clean up the X associated with "once", and release it's
// resource?
// We can't sensibly call once_destroy() here.
}
Anthony
-- Anthony Williams Software Developer Just Software Solutions Ltd http://www.justsoftwaresolutions.co.uk
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk