Merge branch 'develop' into claude/basic-json-template-assumptions-tyc76m

develop rewrote serializer.hpp's dump() to be iterative (indent_string /
o->write_characters() replaced by put_indent()/put_literal()/dump_internal()/
dump_iteratively()), which conflicted with this branch's now-superseded hunks
touching the old recursive-descent code. Resolved by taking develop's
iterative implementation throughout.

The one substantive conflict was in binary-value dumping: this branch's
to_byte_value() cast a binary byte to std::uint8_t before dumping so that a
BinaryType whose value_type isn't uint8_t (e.g. std::byte) still dumps
correctly, while develop's dump_byte() dispatcher lost that cast in its
false_type (not-already-uint8_t) overload. Ported the to_byte_value() cast
into that overload so both the recursive and iterative binary-dump call sites
convert exotic BinaryTypes correctly.

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
Niels Lohmann
2026-09-11 09:52:41 +02:00
80 changed files with 10409 additions and 4194 deletions
+1
View File
@@ -297,6 +297,7 @@ nav:
- 'JSON_USE_GLOBAL_UDLS': api/macros/json_use_global_udls.md
- 'JSON_USE_IMPLICIT_CONVERSIONS': api/macros/json_use_implicit_conversions.md
- 'JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON': api/macros/json_use_legacy_discarded_value_comparison.md
- 'JSON_USE_SIMDUTF': api/macros/json_use_simdutf.md
- 'NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE': api/macros/nlohmann_define_derived_type.md
- 'NLOHMANN_DEFINE_TYPE_INTRUSIVE, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE': api/macros/nlohmann_define_type_intrusive.md
- 'NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE': api/macros/nlohmann_define_type_non_intrusive.md