jsonbuilder/external
Doug Cook f46e4bb555
JsonBuilder - remove cross-platform barriers (#24)
- Breaking: Remove some overloads that probably aren't a good idea.
  - Don't support AddValue of `char` (ASCII text). It's too easy to mix up
    with `unsigned char` (UINT8) or `signed char` (INT8), and it's not
    obvious that it is ASCII-only. Instead, use `std::string_view`.
  - Don't support AddValue of `std::string`. It forces a dependency on
    full-STL with very little benefit. Instead, use `std::string_view`.
- Fix building on WIN32.
- EnableZeroInitializeMemory() mode was broken. Fixed by removing
  "realloc" mode.
- Update minimum CMake because old version gives warnings on Windows.
- Update Catch2 because old version doesn't build on latest Linux.
- Minimize public header dependencies. Public header should only `#include`
  headers to satisfy itself (should not `#include` headers to satisfy the
  needs of any .cpp file) and should bend over backwards to minimize the
  things that it needs.
- Minimize implementation dependencies. For example, JsonBuilder doesn't
  need to depend on `uuid.h`. Only Linux tests need it, and that's just
  to make sure we interoperate correctly with `uuid_t`.
- Restore link-time customization of `throw` behavior.
- Restore SAL annotations. In Linux they are no-ops, but they're still there
  for documentation and for static checking of Windows builds.
- Fix ABI to implementation-independent.
  - Free functions specify calling convention.
  - `JsonTime` now specifies its frequency and epoch instead of using
    "whatever this STL's system_clock is using". (I picked FILETIME values.)
  - `JsonUuid` now specifies byte order. (Big-endian.)
  - JsonValue's bitfield no longer relies on implementation-defined behavior.
  - Add raw access to the ABI value for `JsonTime`.
- Fix up incorrect comments, fix some inefficient code in JsonRenderer.
2023-12-08 15:59:15 -08:00
..
Catch2@182c910b4b JsonBuilder - remove cross-platform barriers (#24) 2023-12-08 15:59:15 -08:00