Commit Graph

849 Commits (c35d260c2fb91b8a53e585d480607a0f088cbbbb)

Author SHA1 Message Date
Théo DELRIEU 0e694b4060
fix std::filesystem::path regression (#3073)
* meta: rework is_compatible/is_constructible_string_type

These type traits performed an incorrect and insufficient check.

Converting to a std::filesystem::path used to work by accident thanks to
these brittle constraints, but the clean-up performed in #3020 broke them.

* support std::filesystem::path

Fixes #3070
2021-10-14 19:19:46 +02:00
Niels Lohmann ab6a2c7425
🔖 set version to 3.10.3 2021-10-08 13:58:48 +02:00
Théo DELRIEU 80df5e8de6
meta: fix is_compatible/constructible traits (#3020)
The previous version relied on the existence of an 'iterator' type.

As mentioned in comments, this is not the proper way to do it and
causes issues with certain types (e.g. views from range-v3).

Add a 'is_range' trait that properly detects the return type of
'begin'/'end', and use it in instead.
2021-10-07 12:32:25 +02:00
Carl Smedstad 62f2997b79
Fix assertion failure for JSON_DIAGNOSTICS (#3037)
* Fix assertion failure #3032
2021-10-07 12:24:09 +02:00
Niels Lohmann 0b345b20c8
Allow allocators for output_vector_adapter (#2989)
* ♻️ allow allocators for vectors

*  add regression tests
2021-09-12 18:55:47 +02:00
Anthony VH 58b83b71dc
Set parent pointers for values inserted via update() (fixes #3007). (#3008)
* Set parent pointers for values inserted via update() (fixes #3007).

* Moved test for #3007 to proper file.

* Enable access to private members in diagnostics unit tests.

* Make style consistent with rest of code.

* Forced amalgamate rerun.

* Refactor test for #3007 so it doesn't use private members. Also extend to test both update() functions.

* Added fix for #3007 to update(const_iterator, const_iterator) as well.

* Added failing example code from #3007 as extra test.
2021-09-12 18:51:25 +02:00
Niels Lohmann 33b674b4b2
🔖 set version to 3.10.2 2021-08-26 08:13:04 +02:00
Giovanni Cerretani 28a169725e
Fix -Wunused warnings on JSON_DIAGNOSTICS (#2976)
* Fix #2975

Define JSON_DIAGNOSTICS to 0 if not defined to fix annoying Wundef warnings.

* amalgamated
2021-08-26 07:35:01 +02:00
Niels Lohmann 8ad66e9136
🔖 set version to 3.10.1 2021-08-24 20:19:55 +02:00
Niels Lohmann c753165db6
Fix parent update for diagnostics with ordered_json (#2963)
🐛 fix parent update for diagnostics with ordered_json
2021-08-22 20:30:20 +02:00
Pierre Hallot 433604843d
Fix extra ";" clang warnings 2021-08-19 17:04:34 +02:00
Niels Lohmann cfb71ad1bf
🐛 adding missing header 2021-08-18 13:33:35 +02:00
Niels Lohmann 1de378f580
🔖 set version to 3.10.0 2021-08-17 15:23:23 +02:00
Niels Lohmann 8cae9d7cd2
Overwork warning flags (#2936)
* ⚗️ update warning flags
2021-08-17 14:43:43 +02:00
Niels Lohmann 1aceeff3fc
🚨 fix C4244 warning 2021-08-14 13:40:52 +02:00
Niels Lohmann 0a0eb7a850
Merge branch 'develop' of https://github.com/nlohmann/json into issue2863
 Conflicts:
	.github/workflows/windows.yml
2021-08-14 11:19:48 +02:00
Ferry Huberts 364a21be6b Add coverage exclusion comments, as requested
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
2021-08-13 15:30:55 +02:00
Ferry Huberts e7a69b8d31 Adjust more files after actually building like the CI
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
2021-08-13 14:00:00 +02:00
Ferry Huberts 44d60f8d14 All: fix warnings when compiling with -Wswitch-enum
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
2021-08-12 16:33:50 +02:00
Niels Lohmann e20f3f95eb
🚨 guard GCC pragmas #2924 2021-08-11 23:55:46 +02:00
Niels Lohmann 8ae31a56a5
Merge branch 'develop' of https://github.com/nlohmann/json into issue2824 2021-08-11 08:06:32 +02:00
Niels Lohmann 523f7c2c9d
💡 update documentation 2021-08-08 13:24:17 +02:00
Niels Lohmann 176e9bf0ab
add tests for CBOR 2021-08-07 13:14:08 +02:00
Niels Lohmann 89c98dfc20
add option to process binary subtypes in CBOR 2021-08-06 16:41:01 +02:00
Niels Lohmann b7db1d68d9
♻️ fix CBOR and BSON 2021-08-06 14:36:38 +02:00
Niels Lohmann 046df035fa
♻️ change type of binary subtype 2021-08-06 13:45:35 +02:00
Niels Lohmann 3eb1fb6be7
♻️ change type of binary subtype 2021-08-06 13:26:00 +02:00
Niels Lohmann 5c38e76c11
Merge branch 'develop' of https://github.com/nlohmann/json into issue2863 2021-08-06 13:23:26 +02:00
Sven Fink 353d59717e Add more suppressions on float comparisons 2021-08-04 08:34:53 +02:00
Sven Fink 095aae19fe Supress -Wfloat-equal on intended float comparisions 2021-08-03 08:58:38 +02:00
Niels Lohmann 7c19aa2210
♻️ overwork byte_container_with_subtype 2021-08-01 22:00:57 +02:00
Niels Lohmann c3df4ffd5a
🚨 fix warning 2021-08-01 14:08:14 +02:00
Niels Lohmann 9a459e1bd5
🚨 fix useless-cast warnings 2021-07-30 15:20:22 +02:00
Niels Lohmann 7feb2c20cf
🚨 fix useless-cast warnings 2021-07-30 14:48:25 +02:00
Niels Lohmann a563338039
Merge pull request #2825 from ldionne/ldionne-lazy
Properly constrain the basic_json conversion operator
2021-07-22 12:24:56 +02:00
Louis Dionne b0e5965d71 Properly constrain the basic_json conversion operator
Fixes #2491
2021-07-19 11:16:27 -04:00
Niels Lohmann 7066ab128f
🎨 reindent code 2021-07-19 16:56:28 +02:00
Niels Lohmann b7cc47089f
avoid string in case of empty objects 2021-07-16 09:27:18 +02:00
Niels Lohmann c89e23c69b
Merge pull request #2874 from nlohmann/issue2572
Fix truncation warning
2021-07-16 07:54:48 +02:00
Niels Lohmann 996ac1c017
Merge branch 'develop' of https://github.com/nlohmann/json into issue2572
 Conflicts:
	include/nlohmann/detail/output/serializer.hpp
	single_include/nlohmann/json.hpp
2021-07-15 21:57:52 +02:00
Niels Lohmann 3e4723a49f
🔨 remove noexcept annotation 2021-07-15 21:49:09 +02:00
Niels Lohmann ecaac22656
💡 add comment to describe j.m_value.destroy(j.m_type) calls 2021-07-15 20:34:50 +02:00
Niels Lohmann f6863e062c
🐛 fix leak for all types 2021-07-15 20:32:37 +02:00
Niels Lohmann 0011cd1b72
🐛 fix leak for strings 2021-07-15 13:12:21 +02:00
Niels Lohmann c1298e69a6
🐛 fix leak for strings 2021-07-15 12:52:17 +02:00
Niels Lohmann 6cbdc83994
🐛 fix leak for strings 2021-07-15 12:47:15 +02:00
Niels Lohmann 149ded856f
♻️ simplify destroy() function for primitive types 2021-07-15 12:46:48 +02:00
Niels Lohmann a711e1f5a7
🚨 fix warnings 2021-07-13 15:37:57 +02:00
Niels Lohmann 3bb9467073
♻️ move capacity check to set_parent function 2021-07-13 15:27:27 +02:00
Niels Lohmann bc7e8faa4f
🔥 remove duplicated line 2021-07-12 19:21:07 +02:00
Niels Lohmann b0730f29cf
🐛 fix logics 2021-07-12 15:24:06 +02:00
Niels Lohmann d40e98ecef
🐛 fix assertion failure #2838 2021-07-12 13:38:28 +02:00
David Pfahler aa849a2275 Merge branch 'nlohmann:develop' into without-io 2021-06-14 08:22:49 +02:00
David Pfahler ae9bbbc941 include io only if JSON_NO_IO is not set for #2728 2021-05-31 14:26:45 +02:00
Niels Lohmann b08139ea4b
♻️ replace EOF with std::char_traits<char>::eof() 2021-05-04 10:22:34 +02:00
Niels Lohmann d0ab2b86c3
📝 update documentation 2021-04-29 17:19:57 +02:00
Niels Lohmann 8a29a6ecf4
Merge pull request #2731 from theShmoo/custom-cpp-version
Fixes #2730
2021-04-29 09:55:16 +02:00
Niels Lohmann cdfe865486
📝 add documentation for numbers 2021-04-28 20:33:05 +02:00
David Pfahler 5a77314c5e replaced define
JSON_VERSION_IS_PREDEFINED with JSON_HAS_CPP_11
2021-04-26 08:09:36 +02:00
Niels Lohmann a34e011e24
Merge pull request #2576 from AnthonyVH/non_default_constructable_stl_containers
Add support for deserialization of STL containers of non-default constructable types (fixes #2574).
2021-04-25 15:22:37 +02:00
David Pfahler 31c4c8f36c Fixes #2730
Added define JSON_VERSION_IS_PREDEFINED
for skipping automatic JSON_HAS_CPP_* detection
2021-04-21 11:03:28 +02:00
David Pfahler 1a1381f071 Fixes #2728
includes some macros to be defined for using without file io.
2021-04-21 10:24:01 +02:00
raduteo 35d79203ec
Update json.hpp 2021-04-12 19:47:02 -04:00
Anthony VH 2b865131d8 Fixing CI errors. 2021-03-24 23:33:21 +01:00
Niels Lohmann 41dbd50313
📄 use code from Google Abseil 2021-03-24 13:27:00 +01:00
Anthony VH 333612ce35 Merge remote-tracking branch 'upstream/develop' into non_default_constructable_stl_containers 2021-03-24 12:33:57 +01:00
Niels Lohmann 6f551930e5
🚨 add new CI and fix warnings (#2561)
* ⚗️ move CI targets to CMake
* ♻️ add target for cpplint
* ♻️ add target for self-contained binaries
* ♻️ add targets for iwyu and infer
* 🔊 add version output
* ♻️ add target for oclint
* 🚨 fix warnings
* ♻️ rename targets
* ♻️ use iwyu properly
* 🚨 fix warnings
* ♻️ use iwyu properly
* ♻️ add target for benchmarks
* ♻️ add target for CMake flags
* 👷 use GitHub Actions
* ⚗️ try to install Clang 11
* ⚗️ try to install GCC 11
* ⚗️ try to install Clang 11
* ⚗️ try to install GCC 11
* ⚗️ add clang analyze target
* 🔥 remove Google Benchmark
* ⬆️ Google Benchmark 1.5.2
* 🔥 use fetchcontent
* 🐧 add target to download a Linux version of CMake
* 🔨 fix dependency
* 🚨 fix includes
* 🚨 fix comment
* 🔧 adjust flags for GCC 11.0.0 20210110 (experimental)
* 🐳 user Docker image to run CI
* 🔧 add target for Valgrind
* 👷 add target for Valgrind tests
* ⚗️ add Dart
*  remove Dart
* ⚗️ do not call ctest in test subdirectory
* ⚗️ download test data explicitly
* ⚗️ only execute Valgrind tests
* ⚗️ fix labels
* 🔥 remove unneeded jobs
* 🔨 cleanup
* 🐛 fix OCLint call
*  add targets for offline and git-independent tests
*  add targets for C++ language versions and reproducible tests
* 🔨 clean up
* 👷 add CI steps for cppcheck and cpplint
* 🚨 fix warnings from Clang-Tidy
* 👷 add CI steps for Clang-Tidy
* 🚨 fix warnings
* 🔧 select proper binary
* 🚨 fix warnings
* 🚨 suppress some unhelpful warnings
* 🚨 fix warnings
* 🎨 fix format
* 🚨 fix warnings
* 👷 add CI steps for Sanitizers
* 🚨 fix warnings
*  add optimization to sanitizer build
* 🚨 fix warnings
* 🚨 add missing header
* 🚨 fix warnings
* 👷 add CI step for coverage
* 👷 add CI steps for disabled exceptions and implicit conversions
* 🚨 fix warnings
* 👷 add CI steps for checking indentation
* 🐛 fix variable use
* 💚 fix build
*  remove CircleCI
* 👷 add CI step for diagnostics
* 🚨 fix warning
* 🔥 clean Travis
2021-03-24 07:15:18 +01:00
Remy Jette 0a9ec38f44 Remove HEDLEY annotation from exception::what()
The latest MSVC compiler throws the following warning on
nlohmann::detail::exception::what() if /analyze is enabled:

```
vcruntime_exception.h(93) : warning C28204: 'what' has an override at
`nlohmann\json\develop\single_include\nlohmann\json.hpp(2644)`
and only the override is annotated for return: when an override is
annotated, the base (this function) should be similarly annotated.
```

See https://godbolt.org/z/r331h4
2021-03-15 17:45:40 -07:00
Niels Lohmann 176d8e261a
Merge pull request #2562 from nlohmann/diagnostics
Better diagnostics
2021-02-10 07:20:54 +01:00
Niels Lohmann bb90e34d22
⬆️ Hedley v15 2021-02-07 17:47:08 +01:00
Niels Lohmann 56a6dec0de
🔀 merge develop branch 2021-02-07 17:46:11 +01:00
Niels Lohmann 4917e7c259
Merge branch 'develop' of https://github.com/nlohmann/json into diagnostics
 Conflicts:
	include/nlohmann/detail/input/parser.hpp
	single_include/nlohmann/json.hpp
2021-02-07 17:45:09 +01:00
Niels Lohmann 6d4eed5aeb
🚨 fix warning 2021-01-30 12:51:54 +01:00
Niels Lohmann ffdeb77468
🚨 fix warnings #2615 2021-01-27 12:54:46 +01:00
Niels Lohmann 524eea5887
👌 remove unused template parameter 2021-01-26 17:49:15 +01:00
Niels Lohmann 74cc0ab470
♻️ remove diagnostics_t class 2021-01-25 13:47:50 +01:00
Anthony VH 130382f2a9 Remove comment about GCC commit which didn't really relate to the code. 2021-01-24 20:02:24 +01:00
Niels Lohmann c190a72f3d
👌 apply suggestion
Co-authored-by: Alexander Karzhenkov <karzhenkov@mail.ru>
2021-01-24 17:45:08 +01:00
Niels Lohmann 380a613f2b
🐛 fix bug in diagnostics_t 2021-01-23 20:58:59 +01:00
Anthony VH 848927ae90 Updated comments as requested. 2021-01-23 18:24:47 +01:00
Niels Lohmann 42218cac1b
⚗️ try 9 bytes 2021-01-21 22:01:09 +01:00
Niels Lohmann d6ff059a90
👌 addressed review comments 2021-01-20 15:05:07 +01:00
Niels Lohmann 33379684b4
improve coverage 2021-01-17 22:52:40 +01:00
Niels Lohmann e23af7434d
🚨 fix warnings 2021-01-17 13:32:26 +01:00
Niels Lohmann e9d641130d
🐛 proper JSON Pointer escape in diagnostic messages 2021-01-16 15:33:05 +01:00
Niels Lohmann 29f7abf57d
🚨 fix format-truncation warning #2572 2021-01-15 17:01:47 +01:00
Niels Lohmann 7633a21e6c
💚 fix build 2021-01-15 16:58:05 +01:00
Niels Lohmann b0d8628c49
👌 address comments 2021-01-15 16:54:00 +01:00
Niels Lohmann f8037660d0
♻️ add iterator set_parent function 2021-01-14 22:43:52 +01:00
Niels Lohmann 0d1fb383b7
👌 address comment 2021-01-14 22:05:08 +01:00
Niels Lohmann a77621687a
📝 fix comment 2021-01-14 21:56:19 +01:00
Niels Lohmann b9d3aa4067
♻️ split set_parent function 2021-01-14 21:55:49 +01:00
Anthony VH 6eb37e9b78 Only add conditional constexpr to get() for >= C++14 to work around errors on older compilers. 2021-01-14 12:41:30 +01:00
Anthony VH d7c0f157c5 Merged from_json for pair and tuple to try to fix C2995 error in old MSVC versions. 2021-01-13 20:47:03 +01:00
Anthony VH fbf6df63d9 Enable member function calls in trailing return decltype expressions for older compilers. 2021-01-13 00:12:51 +01:00
Anthony VH 6ef1614fa9 Refactor json::get() to use priority_tag. 2021-01-12 18:28:47 +01:00
Anthony VH 6278f31d23 Simplify from_json overloads. 2021-01-12 18:28:29 +01:00
Anthony VH 6ebf274ca0 Add internal version of is_default_constructible to work around LWG 2367. 2021-01-12 18:28:00 +01:00
Anthony VH 672e8bfc1d Fixed std::pair trying to deserialize via array functions. 2021-01-11 18:16:15 +01:00
Niels Lohmann ff57bdcc8b
🐛 fix invariants 2021-01-10 22:40:50 +01:00
Anthony VH 23f462b598 Reduced code duplication, renamed tag to identity_tag. 2021-01-10 19:23:32 +01:00
Niels Lohmann 9d0150c234
♻️ simplify code 2021-01-10 15:04:14 +01:00
Niels Lohmann 1d6ba22f15
♻️ simplify code 2021-01-10 14:10:59 +01:00
Niels Lohmann a83404525e
🚨 fix warnings 2021-01-10 13:39:36 +01:00
Niels Lohmann e160749003
♻️ move diagnostic code in header 2021-01-09 19:21:18 +01:00
Anthony VH c0a8b45bbb Renamed template parameter and added some comments. 2021-01-09 17:45:56 +01:00
Anthony VH 1e825e4f92 Add support for deserialization of STL containers of non-default constructable types (fixes #2574). 2021-01-09 00:08:27 +01:00
Niels Lohmann 43cd5c8a4d
👌 fix constructor 2021-01-08 18:00:23 +01:00
Niels Lohmann d4a91b7445
👌 clean operator[] 2021-01-08 11:29:28 +01:00
Niels Lohmann e4af1ddb18
👌 fix operator[] 2021-01-08 11:21:41 +01:00
Niels Lohmann 04a0a07159
👌 fix move constructor and move assignment 2021-01-08 11:21:03 +01:00
Niels Lohmann 0617bd248d
👌 fix operator[] 2021-01-08 11:10:24 +01:00
Niels Lohmann ddc3bb1992
👌 remove unnecessary assignment from destructor 2021-01-08 11:09:58 +01:00
Niels Lohmann 7cdf34b21e
Merge branch 'develop' of https://github.com/nlohmann/json into diagnostics 2021-01-08 10:20:34 +01:00
Niels Lohmann 085d497bf7
📄 update copyright year 2021-01-03 20:28:06 +01:00
Niels Lohmann 294fa343d5
🐛 fix bug in move constructor 2021-01-03 20:06:32 +01:00
Niels Lohmann ec0b1798bc
🚧 implement more parent relations 2021-01-02 21:36:11 +01:00
Niels Lohmann 7323a8eb4e
🚧 add tests 2021-01-02 16:13:04 +01:00
Niels Lohmann c6e7fa21ed
🚧 fix preprocessor check 2021-01-02 13:58:05 +01:00
Niels Lohmann 7b047861b0
🚧 add diagnostics to exceptions 2021-01-02 13:44:41 +01:00
Niels Lohmann a4d491e22d
🚧 better diagnostics 2021-01-01 17:23:10 +01:00
Niels Lohmann bdb2469c31
🚨 fix warnings 2020-12-29 21:36:30 +01:00
Niels Lohmann 433da31334
⚗️ try to use GCC 10 2020-12-29 20:16:51 +01:00
Niels Lohmann 98b2152452
Merge branch 'develop' of https://github.com/nlohmann/json into std_bytes 2020-12-29 14:37:46 +01:00
Jaakko Moisio 467f622c65 Fix compilation of input_adapter(container) in edge cases
This fixes a compilation issue with the library if trying to use containers that
don't have non-member `begin()` and `end()` functions via ADL.

This patch extends the `using std::begin` and `using std::end` declarations to
also cover the return type deduction of the input_adapter() template
specialization for containers. The previous implementation only enabled the
detection of `std::begin()` and `std::end()` in the function body, making the
specialization unusable for container types that only have member `begin()` and
`end()` functions.

It is not typical to have `using` declarations in the namespace scope in a
header file. But a C++11 implementation can't rely on fully automatic return
type deduction, and needs to rely on ADL enabled helper templates. To prevent
the using declarations leaking, they are enclosed in another nested namespace.
2020-12-28 22:21:02 +01:00
Niels Lohmann 5dd06714b1
🐛 allow parsing from std::byte containers #2546 2020-12-28 11:31:21 +01:00
Niels Lohmann dfedefb993
🚨 fix warnings 2020-12-26 17:56:16 +01:00
Niels Lohmann f15d447522
🚨 fix warnings 2020-12-26 14:55:19 +01:00
Alexander Karzhenkov cd7acc1dc5 Include <string_view> in "nlohmann/json.hpp" when C++17 is used 2020-12-20 19:40:36 +05:00
Niels Lohmann af8c6e7aa9
Merge pull request #2533 from nlohmann/c++_future
Do not unconditionally redefine C++14 constructs
2020-12-16 20:54:09 +01:00
Niels Lohmann 5c1a5bc9c1
Merge pull request #2534 from nlohmann/clarify_license
Clarify license of is_complete_type implementation
2020-12-16 20:53:38 +01:00
Niels Lohmann 5cc5285fe8
🚨 fix shadowing warning 2020-12-15 22:15:36 +01:00
Niels Lohmann 94d177e09a
📄 clarify license 2020-12-14 14:58:59 +01:00
Niels Lohmann 467986fe98
♻️ do not unconditionally redefine C++14 constructs 2020-12-14 14:31:27 +01:00
Niels Lohmann 85ffc85a29
🎨 amalgamate code 2020-12-14 10:38:49 +01:00
Niels Lohmann 5026acd70c
Merge pull request #2444 from linev/fix_gcc48_warn
Change argument name "subtype" in byte_container_with_subtype
2020-12-11 13:46:41 +01:00
Sergey Linev 30dd0c0f09 Change underscore placement 2020-12-11 13:43:17 +01:00
Niels Lohmann 3ad6992f50
Merge pull request #2405 from karzhenkov/fix-json_ref-move
Fix move constructor of json_ref
2020-12-11 13:36:33 +01:00
Niels Lohmann e3643aadf7
Merge pull request #2447 from jbzdarkid/develop
Add asserts to suppress C28020
2020-12-11 13:27:52 +01:00
Krylov Yaroslav 972c15f26e
ordered_map::insert(InputIt first, InputIt last) is added 2020-12-07 20:15:41 +03:00
Joseph Blackman 9f45d314d5
Apply suggestions from code review
Co-authored-by: Niels Lohmann <niels.lohmann@gmail.com>
2020-11-24 11:02:58 -08:00
jbzdarkid 64ff1cf90d Add asserts to suppress C28020 2020-10-26 13:57:38 -07:00
Sergey Linev 71cb7d12da Change argument name "subtype" in byte_container_with_subtype
Fix warnings on older g++ 4.8

declaration of ‘subtype’ shadows a member of 'this'
2020-10-23 13:52:24 +02:00
Alexander Karzhenkov 42a9dc0bc3 Improve json_ref implementation 2020-09-27 10:45:21 +05:00
Niels Lohmann 14f8be11ce
Merge branch 'develop' of https://github.com/nlohmann/json into hedley14 2020-08-24 16:12:11 +02:00
Niels Lohmann 9d726c25d5
♻️ remove "#define private public" 2020-08-12 13:30:06 +02:00
Niels Lohmann 411fc3249b
⬆️ Hedley 14 (dev branch) 2020-08-12 13:00:57 +02:00
Niels Lohmann b888afe5f4
Merge pull request #2349 from nlohmann/issue2348
Remove -Wimplicit-fallthrough warning
2020-08-11 09:05:02 +02:00
Niels Lohmann dd8cb2acc1
🚨 remove -Wimplicit-fallthrough warning #2348 2020-08-10 20:48:39 +02:00
Niels Lohmann 4080d0b1a4
add test to compile without exceptions 2020-08-10 09:48:11 +02:00