cpp_new.cpp 640 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (c) 2018
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include <stdlib.h>
  7. #if __cplusplus < 201103L
  8. #define NOEXCEPT
  9. #else /* >= C++11 */
  10. #define NOEXCEPT noexcept
  11. #endif /* __cplusplus */
  12. void* operator new(size_t size)
  13. {
  14. return malloc(size);
  15. }
  16. void* operator new[](size_t size)
  17. {
  18. return malloc(size);
  19. }
  20. void operator delete(void* ptr) NOEXCEPT
  21. {
  22. free(ptr);
  23. }
  24. void operator delete[](void* ptr) NOEXCEPT
  25. {
  26. free(ptr);
  27. }
  28. #if (__cplusplus > 201103L)
  29. void operator delete(void* ptr, size_t) NOEXCEPT
  30. {
  31. free(ptr);
  32. }
  33. void operator delete[](void* ptr, size_t) NOEXCEPT
  34. {
  35. free(ptr);
  36. }
  37. #endif // __cplusplus > 201103L