8
8
#define NEW_H
9
9
10
10
#include <stdlib.h>
11
+ //#pragma long_calls
11
12
12
13
namespace std {
13
14
struct nothrow_t {};
@@ -27,25 +28,36 @@ namespace std {
27
28
using size_t = ::size_t;
28
29
} // namespace std
29
30
30
- [[gnu::weak]] void * operator new(std::size_t size);
31
- [[gnu::weak]] void * operator new[](std::size_t size);
31
+ void * operator new(std::size_t size);
32
+ void * operator new[](std::size_t size);
32
33
33
- [[gnu::weak]] void * operator new(std::size_t size, const std::nothrow_t tag) noexcept;
34
- [[gnu::weak]] void * operator new[](std::size_t size, const std::nothrow_t& tag) noexcept;
34
+ #if __cplusplus >= 201703L
35
+ void * operator new(std::size_t count, std::align_val_t al);
36
+ void * operator new[](std::size_t count, std::align_val_t al);
37
+
38
+ void* operator new(std::size_t count, std::align_val_t al,
39
+ const std::nothrow_t& tag) noexcept;
40
+ void* operator new[](std::size_t count, std::align_val_t al,
41
+ const std::nothrow_t& tag) noexcept;
42
+ #endif
43
+
44
+ void * operator new(std::size_t size, const std::nothrow_t tag) noexcept;
45
+ void * operator new[](std::size_t size, const std::nothrow_t& tag) noexcept;
35
46
36
47
void * operator new(std::size_t size, void *place) noexcept;
37
48
void * operator new[](std::size_t size, void *place) noexcept;
38
49
39
- [[gnu::weak]] void operator delete(void * ptr) noexcept;
40
- [[gnu::weak]] void operator delete[](void * ptr) noexcept;
50
+
51
+ void operator delete(void * ptr) noexcept;
52
+ void operator delete[](void * ptr) noexcept;
41
53
42
54
#if __cplusplus >= 201402L
43
- [[gnu::weak]] void operator delete(void* ptr, std::size_t size) noexcept;
44
- [[gnu::weak]] void operator delete[](void * ptr, std::size_t size) noexcept;
55
+ void operator delete(void* ptr, std::size_t size) noexcept;
56
+ void operator delete[](void * ptr, std::size_t size) noexcept;
45
57
#endif // __cplusplus >= 201402L
46
58
47
- [[gnu::weak]] void operator delete(void* ptr, const std::nothrow_t& tag) noexcept;
48
- [[gnu::weak]] void operator delete[](void* ptr, const std::nothrow_t& tag) noexcept;
59
+ void operator delete(void* ptr, const std::nothrow_t& tag) noexcept;
60
+ void operator delete[](void* ptr, const std::nothrow_t& tag) noexcept;
49
61
50
62
void operator delete(void* ptr, void* place) noexcept;
51
63
void operator delete[](void* ptr, void* place) noexcept;
0 commit comments