En esta página

QScopedValueRollback Class

template <typename T> class QScopedValueRollback

La clase QScopedValueRollback restablece una variable a su valor anterior al ser destruida. Más...

Cabecera: #include <QScopedValueRollback>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Funciones públicas

Descripción Detallada

La clase QScopedValueRollback se puede utilizar para revertir el estado cuando se lanza una excepción sin necesidad de escribir bloques try-catch.

También se puede utilizar para gestionar variables que se establecen temporalmente, como guardias de reentrada. Utilizando esta clase, la variable se restablecerá tanto si la función se abandona normalmente, como si se abandona antes de tiempo mediante una sentencia return, o si se abandona mediante una excepción.

La plantilla sólo puede ser instanciada con un tipo que soporte asignación.

Véase también QScopedPointer y QScopeGuard.

Documentación de funciones miembro

[explicit constexpr] QScopedValueRollback::QScopedValueRollback(T &var)

Almacena internamente el valor anterior de var, para revertirlo en caso de destrucción.

[explicit constexpr] QScopedValueRollback::QScopedValueRollback(T &var, T value)

Asigna value a var y almacena internamente el valor anterior de var, para revertirlo en caso de destrucción.

[constexpr] QScopedValueRollback::~QScopedValueRollback()

Asigna el valor anterior a la variable gestionada. Este es el valor en el momento de la construcción, o en la última llamada a commit()

[constexpr] void QScopedValueRollback::commit()

Actualiza el valor anterior de la variable gestionada a su valor actual.

© 2026 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.