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, |