1
0
mirror of https://github.com/nlohmann/json.git synced 2025-07-16 18:41:53 +03:00
Commit Graph

784 Commits

Author SHA1 Message Date
a65d65c724 🔀 merge develop 2024-11-16 23:25:05 +01:00
5e9bf559b1 # Conflicts:
#	.github/workflows/macos.yml
#	include/nlohmann/detail/input/parser.hpp
#	include/nlohmann/detail/meta/std_fs.hpp
#	include/nlohmann/json.hpp
#	single_include/nlohmann/json.hpp
2024-11-16 23:23:05 +01:00
9561a122a3 🚨 fix warning 2024-11-08 23:47:11 +01:00
ad552c41be 🚨 fix warning 2024-11-08 23:41:46 +01:00
078d25ed68 🚨 fix warning 2024-11-08 23:19:04 +01:00
ddecb704e3 🚨 fix warning 2024-11-08 23:13:25 +01:00
c4ec5e0bc5 Merge branch 'develop' into clang-tidy 2024-11-08 22:49:30 +01:00
83dc915ac2 🚑 fix warning 2024-11-08 22:48:11 +01:00
88318f9a77 🔀 merge develop 2024-11-08 22:40:55 +01:00
aff5a31d35 Add NLOHMANN_DEFINE_DERIVED_TYPE_* macros (#4033)
* Add NLOHMANN_DEFINE_DERIVED_TYPE_* macros

* Fix with amalgamate

* Add documentation

* Fix with amalgamate

* Fix with amalgamate

---------

Co-authored-by: Niccolò Iardella <niccolo.iardella@doriansrl.it>
2024-11-08 21:41:19 +01:00
3c282210d6 🚨 fix warning 2024-04-15 21:44:44 +02:00
bb2468a52c 🚨 fix warning 2024-04-15 21:16:40 +02:00
4b7721c392 🚨 fix warning 2024-04-14 13:56:22 +02:00
e8cfe1f712 🚨 fix warning 2024-04-14 12:38:17 +02:00
760f54f993 🚨 fix warning 2024-04-14 12:01:20 +02:00
414345eef9 🚨 fix warning 2024-04-13 14:59:13 +02:00
91be9e0175 🚨 fix warning 2024-03-15 19:24:59 +01:00
22d3ee930e 🚨 fix warning 2024-03-15 18:57:27 +01:00
cc4d7f1697 🚨 fix warning 2024-03-15 18:33:24 +01:00
7b89d3ab29 🚨 fix warning 2024-03-15 17:32:27 +01:00
b131d285ed 🚨 fix warning 2024-03-15 17:27:37 +01:00
c35d260c2f Suppress Clang-Tidy warnings (#4276) 2024-01-28 14:04:07 +01:00
a259ecc51e Fix to_json for enums when the enum has an unsigned underlying type. (#4237)
* Enhance the UDT unit test to expose the issue

Add a new enum type with uint64_t as the underlying type.
Use it in the overall UDT. Not strictly needed, but it helps exercise its expected usage.
Create an object of this enum type with a large value (negative if cast to int64_t).
Perform several checks on this object as converted to `json`, which fail without the fix.

* Fix the issue in the relevant `to_json` overload.

Select the correct json type depending on the signedness of the enum's underlying type.
This fixes the new checks in the unit test.

* Add the fix to the single_include

I ran `make pretty` but that modified 20 files, performing a significant amount of indentation changes, none of them related to my change.
I ran `make amalgamate`, but that did nothing. Apparently, the make rule won't run if the single_include files have already been updated by `make pretty`.
I forced `make amalgamate` to do the work by touching the file with the fix.
I then decided to keep just the minimal needed change: the addition of the fix to the single_include file.

I just am not conversant enough in Linux to know whether I installed astyle correctly (had to clone the source from a beta branch and build, in order to get support for `--squeeze-lines`).

* Resolve CI errors and use qualified `std::uint64_t`

The fix was relying on implicit conversions in the non-taken branch.
- Ordinarily (work on a C++20 codebase) I would have used `if constexpr` here, sidestepping the issue, but that's not available on C++11 so I didn't bother.
- So instead of an `if` statement, I used a compile-time constant to select the correct overload.
- This is arguably better in this case, anyway.

I was using function-style casts for typed constants, which I consider superior for constants, but the CI checks disagree, so changed all to `static_cast`.
- For some reason, the CI checks didn't point at all of them, so I hope I caught them all myself.

Built with clang14 and all unit tests pass.

---------

Co-authored-by: Juan Carlos Arevalo Baeza (JCAB) <jcab@ntdev.microsoft.com>
2023-12-14 09:26:10 +01:00
9cca280a4d JSON for Modern C++ 3.11.3 (#4222) 2023-11-28 22:36:31 +01:00
1d597743d8 Fix char_traits deprecation warning (#4179) 2023-11-27 06:51:25 +01:00
f56c6e2e30 Update documentation for the next release (#4216) 2023-11-26 15:51:19 +01:00
360ce457f4 Add serialization-only user defined type macros (#3816) 2023-11-26 13:18:20 +01:00
59da644db4 Add more specific error message when attempting to parse empty input (#4180) 2023-10-31 20:17:43 +01:00
6adae02ddd Fix spellcheck issue (#4173) 2023-10-04 15:24:38 +02:00
6d4b72d3c3 Fix compile error with _HAS_STATIC_RTTI=0 (#4046) 2023-09-24 11:23:41 +02:00
bbd2e1636d Fix deprecation warning (#4161) 2023-09-23 20:16:37 +02:00
6e36c721f0 Fixed init-list construction when size_type is not int (#4140) 2023-09-23 17:21:40 +02:00
1ce29fa22f Fix CI (#4160) 2023-09-23 17:19:28 +02:00
836b7beca4 Fix CI, again (#4083) 2023-09-07 20:41:12 +02:00
ab06fc9951 Fix Clang-Tidy warnings (#4047) 2023-06-08 18:46:48 +02:00
a0c1318830 Fix CI + new Doctest (#3985) 2023-05-21 17:23:18 +02:00
bbe337c3a3 Prevent memory leak when exception is thrown in adl_serializer::to_json (#3901)
Co-authored-by: barcode <barcode@example.com>
2023-03-08 13:43:45 +01:00
80dfb049b3 Fix warning about moved from object (#3889) 2022-12-18 17:20:30 +01:00
2ca8dabeb9 Remove a magic number (#3888) 2022-12-18 17:04:51 +01:00
4b2c8ce6bc Fix some typos for n-dimensional arrays (#3767) 2022-09-26 06:23:18 +02:00
58bd97e2b1 Add clang-tools to required tools for ci_static_analysis_clang (#3724)
* 💚 add clang-tools to required tools for ci_static_analysis_clang

* 🚨 update Clang-Tidy warning selection

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings

* 🚨 fix Clang-Tidy warnings (#3738)

*  revert fix

*  revert fix

* 🚨 fix Clang-Tidy warnings (#3739)

Co-authored-by: Florian Albrechtskirchinger <falbrechtskirchinger@gmail.com>
2022-09-13 12:58:26 +02:00
307c053b9b Add missing <numeric> include (#3719) 2022-08-30 20:55:47 +02:00
bed648ca55 Allow custom base class as node customization point (#3110)
Co-authored-by: Niels Lohmann <niels.lohmann@gmail.com>
Co-authored-by: Florian Albrechtskirchinger <falbrechtskirchinger@gmail.com>
Co-authored-by: barcode <barcode@example.com>
2022-08-28 13:59:07 +02:00
f7973f46d6 Use official Clang/GCC containers (#3703) 2022-08-27 17:28:50 +02:00
9d69186291 🔖 set version to 3.11.2 2022-08-12 15:04:06 +02:00
0e61ee8b07 Restructure inline namespace and allow version component to be disabled (#3683) 2022-08-10 20:24:16 +02:00
a92ccafd2c Deprecate json_pointer/string_t comparisons (#3684)
* Deprecate json_pointer/string_t comparisons

* Update documentation
2022-08-07 22:26:59 +02:00
31265dc69c Make json_pointer usable as map key (again) (#3685)
* Make json_pointer usable as map key

* Add unit tests
2022-08-07 14:35:40 +02:00
dae5412268 Properly constrain non-string json_pointer overloads (#3681)
Thanks, @alex-700, for reminding me.
2022-08-07 13:55:09 +02:00
0c7a18374c Reimplement value() access functions (#3663)
* Reimplement value() access functions

* Merges the 'const char *' with the 'ValueType &&' overloads.
* Fixes ambiguities when default value is 0.
* Fixes 'no matching function' error when specifying ValueType template
  parameter.
* Fixes incorrect template parameter order in previous overloads.

* Add additional value() tests

* Make JSON_MultipleHeaders visible to unit tests

Define the macro JSON_TEST_USING_MULTIPLE_HEADERS to 0/1 depending on
JSON_MultipleHeaders.

* Add type_traits unit test

* Update documentation
2022-08-07 13:54:55 +02:00