MCRO
C++23 utilities for Unreal Engine.
Loading...
Searching...
No Matches
TimespanLiterals.h
Go to the documentation of this file.
1
/** @noop License Comment
2
* @file
3
* @copyright
4
* This Source Code is subject to the terms of the Mozilla Public License, v2.0.
5
* If a copy of the MPL was not distributed with this file You can obtain one at
6
* https://mozilla.org/MPL/2.0/
7
*
8
* @author David Mórász
9
* @date 2025
10
*/
11
12
#pragma once
13
#include "CoreMinimal.h"
14
#include "
Mcro/Concepts.h
"
15
#include "Misc/Timespan.h"
16
17
namespace
Mcro::Timespan::Literals
18
{
19
using namespace
Mcro::Concepts
;
20
21
namespace
Detail
22
{
23
template
<
auto
Function,
char
... ValueText>
24
constexpr
FTimespan
CreateFromParamPack
()
25
{
26
static
TStaticArray<char,
sizeof
...(ValueText) + 1>
string
{ ValueText...,
'\0'
};
27
double
value = TCString<char>::Atod(
string
.GetData());
28
return
Function(value);
29
}
30
}
31
32
template
<
char
... Value>
33
constexpr
FTimespan
operator
""
_D ()
34
{
35
return
Detail::CreateFromParamPack
<&FTimespan::FromDays, Value...>();
36
}
37
38
template
<
char
... Value>
39
constexpr
FTimespan
operator
""
_h ()
40
{
41
return
Detail::CreateFromParamPack
<&FTimespan::FromHours, Value...>();
42
}
43
44
template
<
char
... Value>
45
constexpr
FTimespan
operator
""
_m ()
46
{
47
return
Detail::CreateFromParamPack
<&FTimespan::FromMinutes, Value...>();
48
}
49
50
template
<
char
... Value>
51
constexpr
FTimespan
operator
""
_s ()
52
{
53
return
Detail::CreateFromParamPack
<&FTimespan::FromSeconds, Value...>();
54
}
55
56
template
<
char
... Value>
57
constexpr
FTimespan
operator
""
_ms ()
58
{
59
return
Detail::CreateFromParamPack
<&FTimespan::FromMilliseconds, Value...>();
60
}
61
62
template
<
char
... Value>
63
constexpr
FTimespan
operator
""
_us ()
64
{
65
return
Detail::CreateFromParamPack
<&FTimespan::FromMicroseconds, Value...>();
66
}
67
}
Concepts.h
Mcro::Concepts
Definition
Concepts.h:34
Mcro::Timespan::Literals::Detail::CreateFromParamPack
constexpr FTimespan CreateFromParamPack()
Definition
TimespanLiterals.h:24
Mcro::Timespan::Literals
Definition
TimespanLiterals.h:18
Mcro_Origin
Public
Mcro
TimespanLiterals.h
Generated by
1.12.0