diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2025-03-27 13:19:31 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2025-03-27 13:19:31 +0100 |
commit | a81a93beca9a077b4254488ba5617b44fca8d0c1 (patch) | |
tree | 4eb17ff1b432f2768ab8c88c267c4984b776380e /doc/scope.rst | |
parent | 1c4b96855c415c48c0b3281b801c2e89fb935061 (diff) | |
parent | faa9f121de6d65800468d87d8eca0e3ff06b4ae0 (diff) |
Merge branch 'release/debian/4.26-1'HEADdebian/4.26-1master
Diffstat (limited to 'doc/scope.rst')
-rw-r--r-- | doc/scope.rst | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/scope.rst b/doc/scope.rst new file mode 100644 index 0000000..84ad69b --- /dev/null +++ b/doc/scope.rst @@ -0,0 +1,22 @@ +============ +Scope guards +============ + +``scope_exit`` +============== + +scope_exit creates an object that runs a predefined function when a scope ends. +This is useful for augmenting C APIs with something of a destructor without +wrapping the stuff in an explicit class of its own. For instance, + +.. code-block:: c++ + + #include <libHX/option.h> + #include <libHX/scope.hpp> + int main() { + auto fa = HXformat_init(); + if (fa == nullptr) + return 0; + auto cleanup_fa = HX::make_scope_exit([&]() { HXformat_free(fa); }); + HXformat_add(fa, "foo", "bar", HXTYPE_STRING); + } |