郑少锟
87cda1d664
Use std::iterator_traits
to extract iterator_category
( #3544 )
...
* Use `std::iterator_traits` to extract `iterator_category`
In third-party STL implementations, `array_t::iterator` might be a pointer (e.g., `vector` in [EASTL](https://github.com/electronicarts/EASTL )) rather than a class, in which case directly using `array_t::iterator::iterator_category` is invalid. This commit fixes it with `std::iterator_traits`, which handles pointers correctly.
* add the changes to the single-header version
2022-06-18 19:14:03 +02:00
Florian Albrechtskirchinger
6b97599a27
Fix C++20/gcc-12 issues (Part 2) ( #3446 )
...
* Add C++20 3-way comparison operator and fix broken comparisons
Fixes #3207 .
Fixes #3409 .
* Fix iterators to meet (more) std::ranges requirements
Fixes #3130 .
Related discussion: #3408
* Add note about CMake standard version selection to unit tests
Document how CMake chooses which C++ standard version to use when
building tests.
* Update documentation
* CI: add legacy discarded value comparison
* Fix internal linkage errors when building a module
2022-05-29 13:08:06 +02:00
Florian Albrechtskirchinger
616caea27a
Re-template json_pointer on string type ( #3415 )
...
* Make exception context optional
Change exception context parameter to pointer and replace context with
nullptr where appropriate.
* Support escaping other string types
* Add string concatenation function
Add variadic concat() function for concatenating char *, char, and
string types.
* Replace string concatenations using + with concat()
* Template json_pointer on string type
Change json_pointer from being templated on basic_json to being
templated on string type.
* Add unit test for #3388
Closes #3388 .
* Fix regression test for #2958
* Add backwards compatibility with json_pointer<basic_json>
* Update json_pointer docs
* Allow comparing different json_pointers
* Update version numbers
2022-04-12 14:18:16 +02:00
Florian Albrechtskirchinger
700b95f447
Make iterator operator++/--(int) equality-preserving ( #3332 )
...
Commit f28fc22
introduced const qualifiers on post-(inc-/dec-)rement
operators of iterators. These qualifiers prevent the use of basic_json
in place of std::ranges::range, which requires the post-increment
operator to be equality-preserving.
These changes appear to be the result of ICC compiler suggestions, and
no further explanation is discernible from the PR discussion (#858 ).
Further testing revealed, that clang-tidy also suggests adding const to
prevent "accidental mutation of a temporary object".
As an alternative, this commit partially reverts f28fc22
, removing all
added const qualifiers from return types and adds lvalue reference
qualifiers to the operator member functions instead.
Unit tests ensure the operators remain equality-preserving and
accidental mutation of temporaries following post-(inc-/dec-)rement is
prohibited.
Fixes #3331 .
2022-03-08 10:10:50 +01:00
Niels Lohmann
7440786b81
Update CI ( #3088 )
...
* 👷 prepare GitHub actions for new Docker image
* 👷 use experimental docker image
* 👷 use Clang-Analyzer 14
* 🔇 suppress readability-identifier-length
* 🔇 suppress more Clang-Tidy warnings
* ♻️ simplify code
* 🔇 suppress more Clang-Tidy warnings
* 🔇 suppress more Clang-Tidy warnings
* 🚨 fix warning
* 🚨 fix warning
* 🚨 fix warning
* 👷 use new Docker image
2021-10-29 21:27:34 +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
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
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
74cc0ab470
♻️ remove diagnostics_t class
2021-01-25 13:47:50 +01:00
Niels Lohmann
e160749003
♻️ move diagnostic code in header
2021-01-09 19:21:18 +01:00
Niels Lohmann
7b047861b0
🚧 add diagnostics to exceptions
2021-01-02 13:44:41 +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
dfedefb993
🚨 fix warnings
2020-12-26 17:56:16 +01:00
Niels Lohmann
9d726c25d5
♻️ remove "#define private public"
2020-08-12 13:30:06 +02:00
Niels Lohmann
8d295235a5
🔥 remove unused boolean_operators.hpp header
2020-07-11 19:20:44 +02:00
Niels Lohmann
dc06f100be
Merge branch 'develop' of https://github.com/nlohmann/json into clang_windows
...
Conflicts:
include/nlohmann/detail/input/binary_reader.hpp
include/nlohmann/detail/input/json_sax.hpp
include/nlohmann/detail/input/lexer.hpp
include/nlohmann/detail/input/parser.hpp
include/nlohmann/detail/json_pointer.hpp
include/nlohmann/detail/output/serializer.hpp
include/nlohmann/json.hpp
single_include/nlohmann/json.hpp
2020-07-11 14:04:40 +02:00
Niels Lohmann
98b1c6d302
🚩 use JSON_ASSERT(x) instead of assert(x)
2020-07-06 12:22:31 +02:00
Niels Lohmann
ac3922c7aa
Merge branch 'develop' of https://github.com/nlohmann/json into clang_windows
...
Conflicts:
include/nlohmann/detail/input/binary_reader.hpp
include/nlohmann/detail/input/input_adapters.hpp
include/nlohmann/detail/input/lexer.hpp
include/nlohmann/detail/output/binary_writer.hpp
include/nlohmann/json.hpp
single_include/nlohmann/json.hpp
2020-06-27 13:14:48 +02:00
Niels Lohmann
c5ee222982
Merge pull request #2211 from nlohmann/fix_warnings
...
Fix Clang-Tidy warnings
2020-06-27 12:34:18 +02:00
chenguoping
0ecf297457
drop std::enable_if part
2020-06-23 09:14:55 +08:00
Niels Lohmann
8b3d2399a4
🚨 remove warnings
2020-06-22 22:32:21 +02:00
chenguoping
aeef50709e
to allow for ADL in int_to_string() function
2020-06-22 20:17:56 +08:00
chenguoping
691fb0c57a
fix issue#2059
2020-06-16 15:35:26 +08:00
Niels Lohmann
0498202a03
🎨 replace alternative operators (and, not, or)
2020-06-03 14:20:36 +02:00
Niels Lohmann
904642f261
♻️ rename internal_binary_t with binary_t
2020-05-17 22:50:27 +02:00
Niels Lohmann
9adb1c0235
🏁 do not include <ciso646> unless old MSVC is used #2089
2020-05-07 09:43:41 +02:00
Michael Reilly
012c9665ac
Add binary type support to all binary file formats, as well as an internally represented binary type
2020-04-14 10:22:45 -04:00
Florian Pigorsch
b93d414a35
Fix some spelling errors - mostly in comments & documentation.
...
I did not touch the Changelog file and any third party stuff.
additonal -> additional (1)
apppend -> append (2)
constuctor -> constructor (2)
contect -> context (2)
dobulequote -> doublequote (1)
elemnts -> elements (1)
exakt -> exact (2)
exluded -> exclude (1)
explicitely -> explicitly (2)
narcissic -> narcissistic (1)
ocurred -> occurred (1)
occuring -> occurring (2)
preceeds -> preceded (1)
ot -> to (2)
wehther -> whether (2)
2019-10-19 11:59:51 +02:00
Thomas Braun
35b47c2793
iteration_proxy: Fix integer truncation from std::size_t to int
...
Bug introduced in 0f073e26
(Allow items() to be used with custom string,
2019-09-26).
2019-10-16 20:00:05 +02:00
Julien Hamaide
4615f5a980
Provide default implementation for int_to_string, but allow for overloaded function
2019-10-01 10:34:21 +02:00
Julien Hamaide
0f073e26eb
Allow items() to be used with custom string
2019-09-26 13:20:57 +02:00
Niels Lohmann
cf8251eb54
🚑 fix compiler errors
2019-07-14 21:19:55 +02:00
Niels Lohmann
a501365ea2
Merge branch 'feature/hedley' into develop
2019-07-14 20:58:08 +02:00
Niels Lohmann
b17440c12f
🚨 fix compiler warnings
2019-07-12 21:05:16 +02:00
Niels Lohmann
90798caa62
🚚 rename Hedley macros
2019-07-01 22:37:30 +02:00
Niels Lohmann
897362191d
🔨 add NLOHMANN_JSON prefix and undef macros
2019-07-01 22:24:39 +02:00
Niels Lohmann
1720bfedd1
⚗️ add Hedley annotations
2019-06-30 22:14:02 +02:00
Isaac Nickaein
3db14cbfae
📝 Improve doc on const_inter constructor
2019-06-24 15:40:01 +04:30
Isaac Nickaein
798e83a038
Workaround msvc2015 bug with explicit copy-constructor for const_iterator
2019-06-22 21:15:11 +04:30
Niels Lohmann
d21d298397
🎨 fixed indentation
2019-03-28 14:23:26 +01:00
Niels Lohmann
b8451c236f
🚨 fixed warnings
2019-03-17 12:01:49 +01:00
Niels Lohmann
27011e3718
🚨 fixed warnings
2019-03-15 14:55:13 +01:00
past-due
45819dce54
Disable -Wmismatched-tags warning on tuple_size / tuple_element
2019-01-30 12:59:50 -05:00
Niels Lohmann
e5753b14a8
🚨 fixed another linter warning #1400
...
Closes #1400 .
2019-01-13 15:40:49 +01:00
Niels Lohmann
5c04cc1009
🔨 fixed includes
2019-01-13 15:31:22 +01:00
Niels Lohmann
45f5611d9b
🚨 fixed two warnings
2018-12-20 22:41:48 +01:00