| 29 */ |
29 */ |
| 30 |
30 |
| 31 #pragma once |
31 #pragma once |
| 32 #include <algorithm> |
32 #include <algorithm> |
| 33 #include <functional> |
33 #include <functional> |
| |
34 #include <memory> |
| 34 |
35 |
| 35 #define FUNCTION auto |
36 #define FUNCTION auto |
| 36 #define STATIC |
37 #define STATIC |
| 37 #define METHOD auto |
38 #define METHOD auto |
| 38 #define MACRO_TO_STRING_2(A) #A |
39 #define MACRO_TO_STRING_2(A) #A |
| 39 #define MACRO_TO_STRING(A) MACRO_TO_STRING_2(A) |
40 #define MACRO_TO_STRING(A) MACRO_TO_STRING_2(A) |
| 40 |
41 |
| |
42 class String; |
| |
43 |
| 41 using std::swap; |
44 using std::swap; |
| 42 using std::min; |
45 using std::min; |
| 43 using std::max; |
46 using std::max; |
| |
47 |
| |
48 template<typename T> |
| |
49 using SharedPointer = std::shared_ptr<T>; |
| |
50 |
| |
51 template<typename T> |
| |
52 using WeakPointer = std::weak_ptr<T>; |
| 44 |
53 |
| 45 enum Color |
54 enum Color |
| 46 { |
55 { |
| 47 BLACK, |
56 BLACK, |
| 48 RED, |
57 RED, |