Open
Conversation
4f95cc1 to
6cb27e1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.11.3.bcr.1->3.12.0Release Notes
nlohmann/json (nlohmann_json)
v3.12.0: JSON for Modern C++ version 3.12.0Release date: 2025-04-11
SHA-256: aaf127c04cb31c406e5b04a63f1ae89369fccde6d8fa7cdda1ed4f32dfc5de63 (json.hpp), b8cb0ef2dd7f57f18933997c9934bb1fa962594f701cd5a8d3c2c80541559372 (include.zip), 42f6e95cad6ec532fd372391373363b62a14af6d771056dbfc86160e6dfff7aa (json.tar.xz)
Summary
This release fixes some bugs found in the 3.11.3 release and adds some new features.
All changes are backward-compatible.
💰 Note you can support this project via GitHub sponsors or PayPal.
Key updates and enhancements
JSON_DIAGNOSTIC_POSITIONS, introduces member functions to query the byte positions of values in the input they were parsed from. When enabled, this information is also included in exceptions to help pinpoint errors. #4517 #4455 #4570 #4569 #4572 #4571 #4579 #4585 #4561json,ordered_json, and any otherbasic_jsonspecialization. #4597 #2528 #4377 #2532 #2843 #3810 #4608NLOHMANN_DEFINE_DERIVED_TYPE_*macros. #4033 #2199 #4562std::optional: The library now supports conversions from/tostd::optionaltypes when compiled with C++17. #1749 #4036patch,diff, andflattennow work with arbitrary string types. #4536 #4134 #4613 #4019get_numberfunction used in the binary format implementations has been optimized to read multiple bytes at once. #4391std::filesystem::pathare now encoded to UTF-8 strings by default on all operating systems. #4271 #4631Changes and fixes
iteration_proxyis now astd::forward_iteratorinstead of just anstd::input_iterator. This allows more use cases whenitems()is fed into C++20std::views. The iterator always satisfied all requirements for a forward iterator, but was exposed as only an input iterator by the used iterator tag. #4371 #4372m_dataadded. #4343 #4309basic_json. #4451 #4438 #4438nullptrtoparsefunction expectingFILE*. Instead, now an exception is thrown. #4485 #4487EINTRset inerrno. #4506number_floatto be locale-independent. #4505 #4084get_ptrfor unsigned integers. #4525 #4475EOFwithchar_traits. #4532NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULTthrow an exception with an empty json #4507 #4508[]instead ofnull. #4594 #4530Warnings
The quality assurance page gives an overview of the warning flags used during the tests.
Compiler warnings
weak-vtableswarning for exceptions. #4500 #4087Clang-Tidy
modernize-use-std-numbers,readability-redundant-member-init, andbugprone-unused-local-non-trivial-variable. #4276modernize-type-traitsandmodernize-avoid-c-arraysinNLOHMANN_JSON_SERIALIZE_ENUM. #4497 #3924boost-use-rangesas we do not want to rely on Boost. #4489modernize-use-designated-initializersas designated initializers are a C++20 feature. #4489modernize-use-rangesas ranges are a C++20 feature. #4489clang-analyzer-webkit.NoUncountedMemberCheckeras we are using pointers internally. #4701modernize-use-integer-sign-comparison. #4558Build
CMake
NLOHMANN_JSON_TARGET_NAME. #4483Package Managers
alwayslink=TrueBazel flag. #4396Package.swiftdefinition file. #4611CI
Tests
JSON_DisableEnumSerialization=ON. #4504 #4384Infrastructure
macos-11image; the following Xcode versions are no longer tested in the CI: '11.7', '12.4', '12.5.1', '13.0'. #4489macos-13image to test Xcode versions '14.2', '14.3', '14.3.1', '15.0.1', '15.1', '15.2'. #4489macos-14image to test Xcode versions '15.3', '15.4'. #4489macos-15image to test Xcode versions '16.0', '16.1'. #4489json-ciimage as these versions are no longer work on the respectivegccimages (checkout fails). #4489ubuntu-latestimage to run Valgrind. #4575requirements.txtfiles for cppcheck, cpplint, and reuse to central location. #4553.lgtm.ymlfile. #4560ubuntu-latestmore often and reduce dependencies to more exotic containers. #4560.pre-commit-config.ymlfile. #4560tests/thirdparty/imapdl/filterbr.py. #4560Indentation and amalgamation
Documentation
The documentation website contains all project documentation.
Fixed documentation
ci_test_api_documentationCI step. #4516Added documentation
FILES.md. #4560start_posandend_pos. #4560valuefunction. #4628 #4626JSON_DIAGNOSTIC_POSITIONSto macro feature page. #4636Improved documentation
parseandacceptwith respect to #4485 #4487 #4516Package Manager documentation
Documentation implementation
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.