
On Thu, May 22, 2025, 18:52 Joaquin M López Muñoz via Boost < boost@lists.boost.org> wrote:
niedz., 18 maj 2025 o 13:29 Andrzej Krzemienski <akrzemi1@gmail.com> napisał(a):
[...]
A note about exception safety. Using the definitions from David Abrahams, "basic exception safety" should be provided for every function. I cannot see any note about the exception safety of this library. Usually when I find a new library on the web, I assume that the author is not aware of
El 22/05/2025 a las 14:06, Andrzej Krzemienski via Boost escribió: the
problems of "exception safety", and I do not trust them until I am convinced otherwise. I am pretty sure Boost.Bloom takes this into account, but I could not find anything in the docs on this matter.
Yes, exception safety has been taken into account and basic (at least) safety is provided everywhere. I will add this to the reference. Would it be ok to state that basic is provided by default and then explicitly document those functions providing strong (noexcept is not necessary as the signature tells it)?
Sure. Thank you. &rzej;
Additionally, for the copy assignment of the class filter: the docs do not say what happens when the allocator throws. Note that allocators may throw even if we have not run out of memory: do you provide the strong ("commit or rollback") guarantee? Or just the basic one? The same for reset().
Strong safety is provided, which, when combined with propagate_on_container_copy_assignment traits, results in a rather convoluted implementation:
https://github.com/joaquintides/bloom/blob/develop/include/boost/bloom/detai...
reset() also provides strong safety.
Joaquin M Lopez Munoz
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost