Embedded Template Library
1.0
Loading...
Searching...
No Matches
mem_cast.h
1
#pragma once
2
template
<
size_t
Size_>
3
class
uni_type
4
{
5
public
:
6
7
static
constexpr
size_t
Size = Size_;
8
9
//***********************************
10
template
<
typename
T>
11
T& get()
12
{
13
return
*
reinterpret_cast<
T*
>
(buffer);
14
}
15
16
//***********************************
17
template
<
typename
T>
18
const
T& get()
const
19
{
20
return
*
reinterpret_cast<
T*
>
(buffer);
21
}
22
23
template
<
typename
T>
24
operator
T()
25
{
26
return
*
reinterpret_cast<
T*
>
(buffer);
27
}
28
29
//***********************************
30
constexpr
size_t
size()
const
31
{
32
return
Size;
33
}
34
35
private
:
36
37
char
buffer[Size]
38
};
39
40
41
42
template
<
size_t
Size_>
43
class
uni_type_ptr
44
{
45
public
:
46
47
static
constexpr
size_t
Size = Size_;
48
49
//***********************************
50
template
<
typename
T>
51
T& get()
52
{
53
return
*
reinterpret_cast<
T*
>
(pbuffer);
54
}
55
56
//***********************************
57
template
<
typename
T>
58
const
T& get()
const
59
{
60
return
*
reinterpret_cast<
T*
>
(pbuffer);
61
}
62
63
template
<
typename
T>
64
operator
T()
65
{
66
return
*
reinterpret_cast<
T*
>
(pbuffer);
67
}
68
69
//***********************************
70
constexpr
size_t
size()
const
71
{
72
return
Size;
73
}
74
75
private
:
76
77
char
* pbuffer;
78
};
uni_type_ptr
Definition
mem_cast.h:44
uni_type
Definition
mem_cast.h:4
include
etl
experimental
mem_cast.h
Generated on Sat Jan 11 2025 23:21:45 for Embedded Template Library by
1.9.8