Просмотр исходного кода

common: scope_exit: Add a cancellable ScopeExit macro.

bunnei 5 лет назад
Родитель
Сommit
18175c71ed
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      src/common/scope_exit.h

+ 6 - 0
src/common/scope_exit.h

@@ -49,3 +49,9 @@ ScopeExitHelper<Func> ScopeExit(Func&& func) {
  * \endcode
  * \endcode
  */
  */
 #define SCOPE_EXIT(body) auto CONCAT2(scope_exit_helper_, __LINE__) = detail::ScopeExit([&]() body)
 #define SCOPE_EXIT(body) auto CONCAT2(scope_exit_helper_, __LINE__) = detail::ScopeExit([&]() body)
+
+/**
+ * This macro is similar to SCOPE_EXIT, except the object is caller managed. This is intended to be
+ * used when the caller might want to cancel the ScopeExit.
+ */
+#define SCOPE_GUARD(body) detail::ScopeExit([&]() body)