|
Boost : |
From: Anthony Williams (anthony_w.geo_at_[hidden])
Date: 2005-09-04 18:03:29
Alexander Terekhov <terekhov_at_[hidden]> writes:
> Peter Dimov wrote:
> [...]
>> Things like auto_ptr aside, you'd need to templatize the once_flag on the
>> return type then, since the first time value needs to be stored somewhere.
>> Is this worth the hassle?
>
> I think yes.
How about the attached version? The result is stored on the heap, which adds
some performance cost, but the once_flag itself doesn't need templating. I
haven't yet adjusted it to avoid this heap allocation for void functions.
It does mean that the initializer is now an aggregate initializer rather than
a constant, as for my original Semaphore-based version.
Anthony
-- Anthony Williams Software Developer
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk