DtkCore
DTK Core module
dsingleton.h
1
/*
2
* Copyright (C) 2016 ~ 2017 Deepin Technology Co., Ltd.
3
*
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU Lesser General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public License
15
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef DSINGLETON_H
19
#define DSINGLETON_H
20
21
#include "dtkcore_global.h"
22
23
DCORE_BEGIN_NAMESPACE
24
57
template
<
class
T>
58
class
LIBDTKCORESHARED_EXPORT
DSingleton
59
{
60
public
:
61
QT_DEPRECATED_X(
"Use ref"
)
62
static
inline
T *instance()
63
{
64
static
T *_instance =
new
T;
65
return
_instance;
66
}
67
68
static
T& ref()
69
{
70
static
T instance;
71
return
instance;
72
}
73
74
DSingleton
(T&&) =
delete
;
75
DSingleton
(
const
T&) =
delete
;
76
void
operator= (
const
T&) =
delete
;
77
78
protected
:
79
DSingleton
() =
default
;
80
virtual
~DSingleton
() =
default
;
81
};
82
83
DCORE_END_NAMESPACE
84
85
#endif
// DSINGLETON_H
Dtk::Core::DSingleton
Definition:
dsingleton.h:59
src
base
dsingleton.h
文档生成时间:2022-12-28-07:03 +00
Doxygen Version
1.9.4
制作者:deepin doc doc go SIG
文档使用CC-BY-4.0共享