Boost logo

Boost :

Subject: Re: [boost] [function] function wrapping with no exception safetyguarantee
From: Peter Dimov (pdimov_at_[hidden])
Date: 2010-10-07 21:22:22


Daniel Walker wrote:

> void do_stuff(boost::function<int(int)> f)
> {
> // ...
> if(f) {
> // Remove the exception safety guarantee for this block.
> boost::unsafe_function<int(int)> g = f;
> for(int i = 0; i < INT_MAX; ++i)
> g(i);
> }
> // ...
> }

This example implies that unsafe_function is inherently more efficient, but
this need not be so. An empty function may point to throw_bad_function_call
instead of NULL.


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