fennec
Loading...
Searching...
No Matches
singleton.h
Go to the documentation of this file.
1
// =====================================================================================================================
2
// fennec, a free and open source game engine
3
// Copyright © 2025 Medusa Slockbower
4
//
5
// This program is free software: you can redistribute it and/or modify
6
// it under the terms of the GNU General Public License as published by
7
// the Free Software Foundation, either version 3 of the License, or
8
// (at your option) any later version.
9
//
10
// This program is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
// GNU General Public License for more details.
14
//
15
// You should have received a copy of the GNU General Public License
16
// along with this program. If not, see <https://www.gnu.org/licenses/>.
17
// =====================================================================================================================
18
30
31
#ifndef FENNEC_RTTI_SINGLETON_H
32
#define FENNEC_RTTI_SINGLETON_H
33
34
namespace
fennec
35
{
36
37
template
<
typename
T>
38
struct
singleton {
39
static
T& instance()
requires
(is_pointer_v<T>) {
40
static
T instance =
nullptr
;
41
return
instance;
42
}
43
44
static
T& instance()
requires
(is_default_constructible_v<T> and not is_pointer_v<T>) {
45
static
T instance;
46
return
instance;
47
}
48
};
49
50
}
51
52
#endif
// FENNEC_RTTI_SINGLETON_H
include
fennec
rtti
singleton.h
Generated by
1.9.8