|
Boost : |
Subject: Re: [boost] Proposed new RAII Library
From: Krzysztof Czainski (1czajnik_at_[hidden])
Date: 2012-09-16 09:35:42
2012/9/16 Sohail Somani <sohail_at_[hidden]>:
> On 15/09/2012 1:55 PM, Lorenzo Caminiti wrote:
>>
>> I wouldn't add the dismiss functionality. That is not always needed
>> with RAII and the Scope Exit API is more generic without it. If users
>> need such functionality, they can use a commit/dismiss variable
>> external to Scope Exit to simply implement it:
>
>
> Every scope guard since the beginning of time has had a dismiss/release
> function.
>
> Pardon me but writing an extra line is exactly what I'm trying to avoid.
Similarly, one might argue that every string class should have a trim
member function, but then there are good arguments, that algorithms
like trim should be external functions [1].
So, maybe the dismiss functionality can be an external function
(assuming a guard can be rebound to another function):
void do_nothing() {}
void dismiss( guard& ) { guard = do_nothing; }
Regards,
Kris
[1] http://www.gotw.ca/gotw/084.htm
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk