1. 17 Sep, 2020 3 commits
    • Matthijs Kooijman's avatar
      Allow overriding selected operator new and delete functions · 4e469e0c
      Matthijs Kooijman authored
      This makes these functions weak, so that a sketch or library can replace
      them. This does not apply to all of these operators, only for the ones
      that the C++ standard specifies as replaceable.
      4e469e0c
    • Matthijs Kooijman's avatar
      Clean up and complete `<new>` header · 07b6bd18
      Matthijs Kooijman authored
      This makes this header complete up to including C++14, except two
      exception classes that cannot be defined without `<exception>`.
      
      The functions related to the "new_handler" are declared but not actually
      defined, to prevent overhead and complexity. They are still declared to
      allow implementing them in user code if needed.
      
      This makes the implementation of all operator new and delete functions
      comply with the C++11/C++14 specification in terms of which should be
      actually implemented and which should be delegate to other functions.
      
      There are still some areas where these implementations are not entirely
      standards-compliant, which will be fixed in subsequent commits.
      
      This fixes part of #287 and fixes #47.
      07b6bd18
    • Matthijs Kooijman's avatar
      Swap new and new.h header files · 9a02bd80
      Matthijs Kooijman authored
      Originally, the Arduino core used "new.h", rather than the standard
      "new", probably because the implementation was incomplete, and for the
      most commonly used new and delete operators, no include is needed at all
      (they are defined implicitly by the compiler). However, now Arduino
      does expose the "new" name, as an alias for the older "new.h". Given
      that the standard name is "new", it makes more sense to put the actual
      content in "new", and make "new.h" a compatibility header that includes
      "new" instead of the other way around.
      9a02bd80
  2. 11 Jun, 2020 7 commits
  3. 13 May, 2020 1 commit
  4. 04 May, 2020 1 commit
  5. 02 May, 2020 1 commit
  6. 28 Apr, 2020 1 commit
  7. 19 Mar, 2020 1 commit
  8. 18 Mar, 2020 1 commit
  9. 02 Dec, 2019 1 commit
  10. 25 Sep, 2019 1 commit
  11. 20 Sep, 2019 3 commits
  12. 19 Sep, 2019 1 commit
  13. 18 Sep, 2019 2 commits
  14. 16 Sep, 2019 15 commits
  15. 04 Sep, 2019 1 commit