fennec
Loading...
Searching...
No Matches
typelist.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_TYPELIST_H
32
#define FENNEC_RTTI_TYPELIST_H
33
34
#include <
fennec/lang/types.h
>
35
#include <
fennec/rtti/type.h
>
36
37
namespace
fennec
38
{
39
40
struct
vtypelist {
41
virtual
~vtypelist() =
default
;
42
virtual
dynarray<type> get() = 0;
43
};
44
45
template
<
typename
...TypesT>
46
struct
typelist : vtypelist {
47
static
constexpr
size_t
size =
sizeof
...(TypesT);
48
49
virtual
dynarray<type> get() {
50
return
{ type::get<TypesT>()... };
51
}
52
};
53
54
}
55
56
#endif
// FENNEC_RTTI_TYPELIST_H
type.h
types.h
Types
include
fennec
rtti
typelist.h
Generated by
1.9.8