|
Version: 3.1.4
|
|
#define | wxON_BLOCK_EXIT(function, ...) |
| Ensure that the global function with a few (up to some implementation-defined limit) is executed on scope exit, whether due to a normal function return or because an exception has been thrown. More...
|
|
#define | wxON_BLOCK_EXIT0(function) |
|
#define | wxON_BLOCK_EXIT1(function, p1) |
|
#define | wxON_BLOCK_EXIT2(function, p1, p2) |
|
#define | wxON_BLOCK_EXIT3(function, p1, p2, p3) |
|
#define | wxON_BLOCK_EXIT_OBJ(object, method, ...) |
| This family of macros is similar to wxON_BLOCK_EXIT(), but calls a method of the given object instead of a free function. More...
|
|
#define | wxON_BLOCK_EXIT_OBJ0(object, method) |
|
#define | wxON_BLOCK_EXIT_OBJ1(object, method, p1) |
|
#define | wxON_BLOCK_EXIT_OBJ2(object, method, p1, p2) |
|
#define | wxON_BLOCK_EXIT_OBJ3(object, method, p1, p2, p3) |
|
#define | wxON_BLOCK_EXIT_THIS(method, ...) |
| This family of macros is similar to wxON_BLOCK_OBJ(), but calls a method of this object instead of a method of the specified object. More...
|
|
#define | wxON_BLOCK_EXIT_THIS0(method) |
|
#define | wxON_BLOCK_EXIT_THIS1(method, p1) |
|
#define | wxON_BLOCK_EXIT_THIS2(method, p1, p2) |
|
#define | wxON_BLOCK_EXIT_THIS3(method, p1, p2, p3) |
|
#define | wxON_BLOCK_EXIT_SET(var, value) |
| This macro sets a variable to the specified value on scope exit. More...
|
|
#define | wxON_BLOCK_EXIT_NULL(ptr) |
| This macro sets the pointer passed to it as argument to NULL on scope exit. More...
|
|
|
template<typename F , typename P1 , ... , typename PN > |
wxScopeGuard | wxMakeGuard (F func, P1 p1,..., PN pN) |
| Returns a scope guard object which will call the specified function with the given parameters on scope exit. More...
|
|
◆ wxON_BLOCK_EXIT
#define wxON_BLOCK_EXIT |
( |
|
function, |
|
|
|
... |
|
) |
| |
Ensure that the global function with a few (up to some implementation-defined limit) is executed on scope exit, whether due to a normal function return or because an exception has been thrown.
A typical example of its usage:
void *buf = malloc(size);
Please see the original article by Andrei Alexandrescu and Petru Marginean published in December 2000 issue of C/C++ Users Journal for more details.
- See also
- wxON_BLOCK_EXIT_OBJ0()
Include file:
#include <wx/scopeguard.h>
◆ wxON_BLOCK_EXIT0
#define wxON_BLOCK_EXIT0 |
( |
|
function | ) |
|
◆ wxON_BLOCK_EXIT1
#define wxON_BLOCK_EXIT1 |
( |
|
function, |
|
|
|
p1 |
|
) |
| |
◆ wxON_BLOCK_EXIT2
#define wxON_BLOCK_EXIT2 |
( |
|
function, |
|
|
|
p1, |
|
|
|
p2 |
|
) |
| |
◆ wxON_BLOCK_EXIT3
#define wxON_BLOCK_EXIT3 |
( |
|
function, |
|
|
|
p1, |
|
|
|
p2, |
|
|
|
p3 |
|
) |
| |
◆ wxON_BLOCK_EXIT_NULL
#define wxON_BLOCK_EXIT_NULL |
( |
|
ptr | ) |
|
This macro sets the pointer passed to it as argument to NULL on scope exit.
It must be used instead of wxON_BLOCK_EXIT_SET() when the value being set is NULL
.
Include file:
#include <wx/scopeguard.h>
◆ wxON_BLOCK_EXIT_OBJ
#define wxON_BLOCK_EXIT_OBJ |
( |
|
object, |
|
|
|
method, |
|
|
|
... |
|
) |
| |
This family of macros is similar to wxON_BLOCK_EXIT(), but calls a method of the given object instead of a free function.
Include file:
#include <wx/scopeguard.h>
◆ wxON_BLOCK_EXIT_OBJ0
#define wxON_BLOCK_EXIT_OBJ0 |
( |
|
object, |
|
|
|
method |
|
) |
| |
◆ wxON_BLOCK_EXIT_OBJ1
#define wxON_BLOCK_EXIT_OBJ1 |
( |
|
object, |
|
|
|
method, |
|
|
|
p1 |
|
) |
| |
◆ wxON_BLOCK_EXIT_OBJ2
#define wxON_BLOCK_EXIT_OBJ2 |
( |
|
object, |
|
|
|
method, |
|
|
|
p1, |
|
|
|
p2 |
|
) |
| |
◆ wxON_BLOCK_EXIT_OBJ3
#define wxON_BLOCK_EXIT_OBJ3 |
( |
|
object, |
|
|
|
method, |
|
|
|
p1, |
|
|
|
p2, |
|
|
|
p3 |
|
) |
| |
◆ wxON_BLOCK_EXIT_SET
#define wxON_BLOCK_EXIT_SET |
( |
|
var, |
|
|
|
value |
|
) |
| |
This macro sets a variable to the specified value on scope exit.
Example of usage:
void foo()
{
bool isDoingSomething = true;
{
... do something ...
}
... isDoingSomething is false now ...
}
Notice that value is copied, i.e. stored by value, so it can be a temporary object returned by a function call, for example.
- See also
- wxON_BLOCK_EXIT_OBJ0(), wxON_BLOCK_EXIT_NULL()
Include file:
#include <wx/scopeguard.h>
◆ wxON_BLOCK_EXIT_THIS
#define wxON_BLOCK_EXIT_THIS |
( |
|
method, |
|
|
|
... |
|
) |
| |
This family of macros is similar to wxON_BLOCK_OBJ(), but calls a method of this
object instead of a method of the specified object.
Include file:
#include <wx/scopeguard.h>
◆ wxON_BLOCK_EXIT_THIS0
#define wxON_BLOCK_EXIT_THIS0 |
( |
|
method | ) |
|
◆ wxON_BLOCK_EXIT_THIS1
#define wxON_BLOCK_EXIT_THIS1 |
( |
|
method, |
|
|
|
p1 |
|
) |
| |
◆ wxON_BLOCK_EXIT_THIS2
#define wxON_BLOCK_EXIT_THIS2 |
( |
|
method, |
|
|
|
p1, |
|
|
|
p2 |
|
) |
| |
◆ wxON_BLOCK_EXIT_THIS3
#define wxON_BLOCK_EXIT_THIS3 |
( |
|
method, |
|
|
|
p1, |
|
|
|
p2, |
|
|
|
p3 |
|
) |
| |
◆ wxMakeGuard()
template<typename F , typename P1 , ... , typename PN >
Returns a scope guard object which will call the specified function with the given parameters on scope exit.
This function is overloaded to take several parameters up to some implementation-defined (but relatively low) limit.
The func should be a functor taking parameters of the types P1, ..., PN, i.e. the expression func(p1, ..., pN)
should be valid.
#define wxON_BLOCK_EXIT_SET(var, value)
This macro sets a variable to the specified value on scope exit.
Definition: scopeguard.h:140
#define wxON_BLOCK_EXIT1(function, p1)
Definition: scopeguard.h:80