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
template
<
size_t
Size_>
41
class
uni_type_ptr
42
{
43
public
:
44
45
static
constexpr
size_t
Size = Size_;
46
47
//***********************************
48
template
<
typename
T>
49
T& get()
50
{
51
return
*
reinterpret_cast<
T*
>
(pbuffer);
52
}
53
54
//***********************************
55
template
<
typename
T>
56
const
T& get()
const
57
{
58
return
*
reinterpret_cast<
T*
>
(pbuffer);
59
}
60
61
template
<
typename
T>
62
operator
T()
63
{
64
return
*
reinterpret_cast<
T*
>
(pbuffer);
65
}
66
67
//***********************************
68
constexpr
size_t
size()
const
69
{
70
return
Size;
71
}
72
73
private
:
74
75
char
* pbuffer;
76
};
uni_type_ptr
Definition
mem_cast.h:42
uni_type
Definition
mem_cast.h:4
include
etl
experimental
mem_cast.h
Generated on
for Embedded Template Library by
1.15.0