blob: cc8c141d591967eba7f6ea4edfbb155546e31a9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
/*
* ========================================================
*
* HCore
* Copyright Mahrouss Logic, all rights reserved.
*
* ========================================================
*/
#pragma once
#include <NewKit/Macros.hpp>
#define NEWKIT_VERSION "1.0.0"
#if !defined(_INC_NO_STDC_HEADERS) && defined(__GNUC__)
#include <CRT/__cxxkit_defines.hxx>
#endif
#ifdef __has_feature
#if !__has_feature(cxx_nullptr)
#error You must at least have nullptr featured on your C++ compiler.
#endif
#endif
namespace HCore {
using voidPtr = void *;
using VoidPtr = void *;
using nullPtr = decltype(nullptr);
using NullPtr = decltype(nullptr);
using Int = int;
using Int32 = int;
using UShort = unsigned short;
using UInt16 = unsigned short;
using Short = short;
using Int16 = short;
using UInt = unsigned int;
using UInt32 = unsigned int;
using Long = long int;
using Int64 = long int;
using ULong = unsigned long int;
using UInt64 = unsigned long int;
using Boolean = bool;
using Bool = bool;
using Char = char;
using UChar = unsigned char;
using UInt8 = unsigned char;
using SSize = Int64;
using SSizeT = Int64;
using Size = __SIZE_TYPE__;
using SizeT = __SIZE_TYPE__;
using IntPtr = __INTPTR_TYPE__;
using UIntPtr = __UINTPTR_TYPE__;
using IntFast = __INT_FAST32_TYPE__;
using IntFast64 = __INT_FAST64_TYPE__;
using PtrDiff = __PTRDIFF_TYPE__;
using Utf8Char = char8_t;
using Utf16Char = char16_t;
using WideChar = wchar_t;
using Utf32Char = char32_t;
using Void = void;
using Lba = SSizeT;
enum class Endian : UChar { kLittle, kBig };
template <typename Args>
Args &&forward(Args &arg) {
return static_cast<Args &&>(arg);
}
template <typename Args>
Args &&move(Args &&arg) {
return static_cast<Args &&>(arg);
}
} // namespace HCore
#define DEDUCE_ENDIAN(address, value) \
(((reinterpret_cast<HCore::Char *>(address)[0]) == (value)) \
? (HCore::Endian::kBig) \
: (HCore::Endian::kLittle))
#define Yes (true)
#define No (false)
#define VoidStar HCore::voidPtr
|