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
16
template
<aui::invocable Callback>
17
class
ARaiiHelper
{
18
public
:
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
29
private
:
30
std::decay_t<Callback> mCallback;
31
};
ARaiiHelper
Definition:
ARaiiHelper.h:17