-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathBase.hpp
68 lines (59 loc) · 1.86 KB
/
Base.hpp
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
#pragma once
#if (defined(_M_AMD64) || defined(__amd64__)) && !defined(_AMD64)
#define _AMD64
#endif
#if defined(__arm__) && !defined(_ARM)
#define _ARM
#endif
#if defined(__PPC64__) && !defined(_PPC64)
#define _PPC64
#endif
#if defined(__aarch64__) && !defined(_AARCH64)
#define _AARCH64
#endif
typedef signed char int8;
typedef short int16;
typedef int int32;
typedef unsigned char uint8;
typedef unsigned short uint16;
typedef unsigned int uint32;
typedef unsigned char byte;
typedef unsigned char uchar;
typedef unsigned int uint;
#if defined(_AMD64) || defined(_PPC64) || defined(_AARCH64)
#ifdef _WIN32
typedef long long int int64;
typedef unsigned long long int uint64;
typedef unsigned long long int usize;
typedef long long int ssize;
#else
typedef long int int64;
typedef unsigned long int uint64;
typedef unsigned long int usize;
typedef long int ssize;
#endif
#else
typedef long long int int64;
typedef unsigned long long int uint64;
typedef unsigned int usize;
typedef int ssize;
#endif
void* operator new(usize size);
void* operator new [](usize size);
void operator delete(void* buffer);
void operator delete[](void* buffer);
inline void* operator new(usize, void* buffer) {return buffer;}
inline void operator delete(void* p, void*) {}
inline usize hash(int8 v) {return (usize)v;}
inline usize hash(uint8 v) {return (usize)v;}
inline usize hash(int16 v) {return (usize)v;}
inline usize hash(uint16 v) {return (usize)v;}
inline usize hash(int32 v) {return (usize)v;}
inline usize hash(uint32 v) {return (usize)v;}
inline usize hash(int64 v) {return (usize)v;}
inline usize hash(uint64 v) {return (usize)v;}
inline usize hash(const void* v) {return (usize)v >> (sizeof(void*) / 4 + 1);}
#if defined(_WIN32) || (!defined(_AMD64) && !defined(_PPC64) && !defined(_AARCH64))
inline usize hash(long v) {return (usize)v;}
inline usize hash(unsigned long v) {return (usize)v;}
#endif