QScopeGuard Class
template <typename F> class QScopeGuardProvides a scope guard for calling a function at the end of a scope. More...
Header: | #include <QScopeGuard> |
qmake: | QT += core |
Since: | Qt 5.12 |
This class was introduced in Qt 5.12.
Public Functions
QScopeGuard(const F &f) | |
QScopeGuard(F &&f) | |
void | dismiss() |
Detailed Description
QScopeGuard<F> is a class of which the sole purpose is to run the function f in its destructor. This is useful for guaranteeing your cleanup code is executed, whether the function is exited normally, exited early by a return statement, or exited by an exception.
Note: Exceptions are not supported. The callable shouldn't throw when executed, copied or moved.
See also QScopedValueRollback.
Member Function Documentation
Create a scope guard that will execute f at the end of the scope.
If F is a lambda, its type cannot be written. In that case you need to either rely on class template argument deduction (C++17 feature) and leave the template parameter out completely or use the helper function qScopeGuard() instead of this constructor.
This function was introduced in Qt 5.15.
void QScopeGuard::dismiss()
Disarms the scope guard, so that the function F will not be called at the end of the scope.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.