88#define NEW_H
99
1010#include <stdlib.h>
11+ //#pragma long_calls
1112
1213namespace std {
1314 struct nothrow_t {};
@@ -27,25 +28,36 @@ namespace std {
2728 using size_t = ::size_t;
2829} // namespace std
2930
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);
3233
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;
3546
3647void * operator new(std::size_t size, void *place) noexcept;
3748void * operator new[](std::size_t size, void *place) noexcept;
3849
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;
4153
4254#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;
4557#endif // __cplusplus >= 201402L
4658
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;
4961
5062void operator delete(void* ptr, void* place) noexcept;
5163void operator delete[](void* ptr, void* place) noexcept;
0 commit comments