AUI Framework  master
Cross-platform module-based framework for developing C++20 desktop applications
ARaiiHelper.h
1/*
2 * AUI Framework - Declarative UI toolkit for modern C++20
3 * Copyright (C) 2020-2024 Alex2772 and Contributors
4 *
5 * SPDX-License-Identifier: MPL-2.0
6 *
7 * This Source Code Form is subject to the terms of the Mozilla Public
8 * License, v. 2.0. If a copy of the MPL was not distributed with this
9 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 */
11
12#pragma once
13
14#include <AUI/Common/AObject.h>
15
16template<aui::invocable Callback>
18public:
19 ARaiiHelper(Callback&& callback) noexcept: mCallback(std::move(callback)) {
20
21 }
22 ARaiiHelper(const ARaiiHelper&) = delete;
23 ARaiiHelper(ARaiiHelper&&) noexcept = delete;
24
25 ~ARaiiHelper() {
26 mCallback();
27 }
28
29private:
30 std::decay_t<Callback> mCallback;
31};
Definition: ARaiiHelper.h:17