acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
typed.h
1
// From acme/include/_.h 2022-11-09 00:22 <3ThomasBorregaardSorensen!!
2
#pragma once
3
4
5
template
<
class
TYPE>
6
inline
auto
& __typed(TYPE& t) {
return
t; }
7
8
9
template
<
class
POINTER_TYPE>
10
inline
auto
& __typed(POINTER_TYPE* p) {
return
*p; }
11
12
13
template
<
class
POINTER_POINTER_TYPE>
14
inline
auto
& __typed(POINTER_POINTER_TYPE** p) {
return
**p; }
15
16
17
template
<
class
TYPE>
18
inline
auto
& __typed_defer_new(TYPE& t) {
return
t; }
19
20
21
template
<
class
POINTER_TYPE>
22
inline
auto
& __typed_defer_new(POINTER_TYPE*& p)
23
{
24
if
(!p) { p = ___new POINTER_TYPE(); }
25
return
*p;
26
}
27
28
29
template
<
class
POINTER_POINTER_TYPE>
30
inline
auto
& __typed_defer_new(POINTER_POINTER_TYPE** p)
31
{
32
if
(!*p) { *p = ___new POINTER_POINTER_TYPE(); }
33
return
**p;
34
}
35
36
37
38
template
<
typename
TYPE >
39
inline
void
__dynamic_cast(TYPE*& ptarget,
const
TYPE* psource)
40
{
41
42
ptarget = (TYPE*)psource;
43
44
}
45
46
47
template
<
typename
TARGET,
typename
SOURCE>
48
inline
void
__dynamic_cast(TARGET*& ptarget,
const
SOURCE* psource)
49
{
50
51
ptarget =
dynamic_cast <
TARGET*
>
((SOURCE*)psource);
52
53
}
54
55
56
prototype
prototype
typed.h
Generated by
1.17.0