Loading...
Searching...
No Matches
TypeExtraction.h
Go to the documentation of this file.
1// Copyright (c) 2025 Dave R. Smith.
2// Malena Framework — Licensed under PolyForm Noncommercial 1.0.0; commercial use requires a paid license. See LICENSE.
3
4//
5// Created by Dave Smith on 3/10/26.
6//
7
8#ifndef MALENA_TYPEEXTRACTION_H
9#define MALENA_TYPEEXTRACTION_H
10
15
17
18namespace ml
19{
21
27 template<typename T, typename = void>
28 struct extract_Flags { using type = void; };
29
30 template<typename T>
31 struct extract_Flags<T, std::void_t<typename T::Flags>>
32 {
33 using type = typename T::Flags;
34 };
35
42 template<typename T, typename = void>
43 struct extract_State { using type = void; };
44
45 template<typename T>
46 struct extract_State<T, std::void_t<typename T::State>>
47 {
48 using type = typename T::State;
49 };
50
57 template<typename T, typename = void>
58 struct extract_TraitManifest { using type = void; };
59
60 template<typename T>
61 struct extract_TraitManifest<T, std::void_t<typename T::manifest_type>>
62 { using type = typename T::manifest_type; };
63
65
66} // namespace ml
67
68#endif // MALENA_TYPEEXTRACTION_H
Definition Component.h:22