Guillaume Racicot
225c8f150a
Disable std::swap specialization in C++20 and added a friend swap function
2020-06-06 11:36:39 -04:00
Niels Lohmann
bf2e714e96
🚨 fix warnings
2020-06-06 14:30:17 +02:00
Niels Lohmann
7444c7fa25
Merge pull request #2145 from FrancoisChabot/1813-user-input
...
Fix Issue#1813: user defined input adapters
2020-06-05 14:30:39 +02:00
Niels Lohmann
0498202a03
🎨 replace alternative operators (and, not, or)
2020-06-03 14:20:36 +02:00
chenguoping
4350c5ed97
fix bug in issue#1972
2020-05-30 17:15:56 +08:00
Francois Chabot
7646253940
fix inconsistent fwd declaration
2020-05-28 12:20:02 -04:00
Francois Chabot
dcf6175978
use the correct convention for boolean operators
2020-05-28 09:29:38 -04:00
Niels Lohmann
61832afe15
Merge pull request #2144 from XyFreak/gcc10_type_limits
...
Fix issue#1939: Cast character to unsigned for comparison
2020-05-28 12:59:57 +02:00
Francois Chabot
76b49f9ee6
misc formatting fixes
2020-05-28 02:29:53 -04:00
Francois Chabot
377995f495
forcefully exclude arrays from being interpreted as pointers
2020-05-27 18:21:38 -04:00
Francois Chabot
b9416a26aa
correct ADL lookup of arrays on Mac and Windows
2020-05-27 13:21:23 -04:00
Francois Chabot
5684d9a498
unified input API
2020-05-27 12:40:04 -04:00
Tobias Kux
23051df2c7
Cast character to unsigned for comparison
2020-05-27 13:15:31 +02:00
Niels Lohmann
225fa58f16
🚧 add fix from #1715
2020-05-20 22:20:40 +02:00
Niels Lohmann
a82c80e9af
Merge pull request #2125 from nlohmann/binary_type
...
Clean up implementation of binary type
2020-05-20 18:58:29 +02:00
Niels Lohmann
952a87a4f4
🚚 move byte container outside detail namespace
2020-05-19 13:08:18 +02:00
Niels Lohmann
b7ff40029a
💥 change serialization of binary values
2020-05-18 13:53:20 +02:00
gistrec
454480f581
fixed a compilation error in MSVC
2020-05-18 14:57:04 +07:00
Niels Lohmann
904642f261
♻️ rename internal_binary_t with binary_t
2020-05-17 22:50:27 +02:00
Niels Lohmann
dead99eb0e
🔨 overwork binary subtypes
2020-05-17 13:51:59 +02:00
Niels Lohmann
ab6e76dd05
Merge branches 'binary_type' and 'develop' of https://github.com/nlohmann/json into binary_type
2020-05-17 12:27:58 +02:00
Niels Lohmann
3799b3f8dd
Merge pull request #2116 from nlohmann/issue2113
...
Fix warnings from Clang 10 and GCC 9
2020-05-17 12:19:06 +02:00
Niels Lohmann
6154d50a9f
Merge pull request #2115 from nlohmann/issue2089
...
Do not include <ciso646> when using C++17
2020-05-17 12:17:17 +02:00
Niels Lohmann
28e20bd9e4
🚨 fix warnings #2113
2020-05-16 14:26:17 +02:00
Niels Lohmann
c0cf67ead3
Merge branch 'develop' of https://github.com/nlohmann/json into binary_type
2020-05-16 12:58:13 +02:00
Niels Lohmann
f40a9f876a
Merge pull request #2044 from dota17/issue#1719
...
Fix issue#1719
2020-05-16 12:57:00 +02:00
Niels Lohmann
3ed059f6ff
⏪ revert faulty changes
2020-05-16 12:56:18 +02:00
Niels Lohmann
bc1886fb60
♻️ refine interface of wrapped_binary_t
2020-05-15 23:21:49 +02:00
Niels Lohmann
a452e8a0a1
💚 fix GCC 4.9 compilation
2020-05-15 22:38:18 +02:00
chenguoping
5dd27f1a9f
compare against max float and min float before converting
2020-05-15 21:47:59 +08:00
Niels Lohmann
daf2d296dd
♻️ move wrapped binary type to separate file
2020-05-15 14:12:32 +02:00
chenguoping
779a0ec7df
update
2020-05-15 17:35:43 +08:00
chenguoping
e175150f5b
fix UBSAN
2020-05-14 20:54:47 +08:00
chenguoping
44fe284f9d
Enhace to_cbor() to support +/-Infinity, NaN, and single-precision float
2020-05-14 15:10:44 +08:00
Niels Lohmann
0857140839
Merge pull request #1950 from FrancoisChabot/issues/1457
...
templated input adapters
2020-05-14 07:52:02 +02:00
Niels Lohmann
d7b032f565
✅ add tests to improve coverage
2020-05-13 21:28:43 +02:00
Niels Lohmann
a4266bbb7d
Merge branch 'develop' into issues/1457
2020-05-13 12:48:46 +02:00
Niels Lohmann
5c42847011
✅ add tests for binary type
2020-05-10 13:23:18 +02:00
Niels Lohmann
fff46ea98c
✅ add tests for binary type
2020-05-09 23:18:12 +02:00
Niels Lohmann
f0c6ab4d3b
🐛 fix bug in SAX callback parser
2020-05-08 14:21:11 +02:00
Niels Lohmann
8c2b26de4a
⚗️ do not include <ciso646> with C++20 #2089
2020-05-07 10:17:32 +02:00
Niels Lohmann
9adb1c0235
🏁 do not include <ciso646> unless old MSVC is used #2089
2020-05-07 09:43:41 +02:00
Niels Lohmann
c10bc7efdd
🔥 remove pretty-print code for binary values
2020-05-06 22:13:08 +02:00
Niels Lohmann
f0050c9ba0
Merge pull request #2019 from dota17/contains_v2
...
fix #1982:json_pointer.contains() exception is incorrectly raised
2020-05-02 11:04:57 +02:00
Rimas Misevičius
6815968a42
Fix error message about invalid surrogate pairs
...
I tested following strings with invalid surrogate pair and unpaired surrogate in files:
1. `"a\uD800\uD800x"`
2. `"a\uD800x"`
The error messge was: "... invalid string: surrogate U+DC00..U+DFFF must be followed by U+DC00..U+DFFF; ..."
I think it must be: "... invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF; ..."
2020-05-01 00:23:04 +03:00
Niels Lohmann
2e5727d778
🐛 properly pass serialize_binary to dump function #2067
2020-04-27 15:10:23 +02:00
chenguoping
8bfc692602
update condition
2020-04-20 16:00:55 +08:00
Niels Lohmann
3607687a14
Merge pull request #2053 from nlohmann/gcc10warnings
...
Fix GCC compiler warnings
2020-04-20 08:05:42 +02:00
Niels Lohmann
e8356928bd
🚨 fix compiler warnings #2052
2020-04-19 13:25:02 +02:00
Niels Lohmann
4fb0795ec1
🚨 fix compiler warnings #2049
2020-04-19 13:01:36 +02:00
Niels Lohmann
3bc9e053c9
Merge pull request #1969 from dota17/dota17-warning
...
fix warnings in serializer.hpp for VS2019
2020-04-17 10:10:38 +02:00
Niels Lohmann
69ac336042
Merge pull request #1967 from dota17/dota17-disable
...
Fix C26451 warnnings in to_chars.hpp
2020-04-17 10:08:21 +02:00
Niels Lohmann
f2b43a36b2
Merge pull request #1662 from OmnipotentEntity/develop
...
Add binary type support to all binary file formats, as well as an internally represented binary type
2020-04-16 11:14:32 +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
chenguoping
f5a487d1b4
fix issue1982: contains() exceptions are incorrectly raised
2020-04-13 19:41:13 +08:00
Niels Lohmann
b7be613b6e
Merge pull request #1990 from dota17/json_pointer
...
catch exceptions for json_pointer : ..../+99
2020-04-13 13:29:33 +02:00
Niels Lohmann
84f19d6333
Merge pull request #2034 from ArtemSarmini/gh-1920-gcc-10-incomplete-types
...
Templatize basic_json constructor from json_ref
2020-04-13 13:19:28 +02:00
Artöm Bakri Al-Sarmini
70be9751cd
typo fix
2020-04-12 23:42:26 +03:00
Artöm Bakri Al-Sarmini
ec955f08b4
Templatize basic_json ctor from json_ref
2020-04-12 22:32:39 +03:00
Niels Lohmann
9154e991b8
Merge branch 'develop' into feature/issue1913
2020-04-11 11:33:46 +02:00
chenguoping
34cf7b7a48
just restart ci
2020-04-07 10:00:21 +08:00
chenguoping
e07686f0c7
update array_index() and add testcases
2020-03-25 15:57:20 +08:00
chenguoping
dcd3a6c62b
move the catch of std::invalid_argument into array_index()
2020-03-23 17:24:47 +08:00
chenguoping
59cb4c93be
fix C26451 warnning in serializer.hpp for VS2019
2020-03-23 16:08:47 +08:00
chenguoping
0a8216890d
fix C26451 warnnings in to_chars.hpp
2020-03-23 15:27:35 +08:00
Sergey Linev
78e911b8c3
Use array_idx as methods args
...
Avoid mix-up with array_index member
Co-Authored-By: Niels Lohmann <niels.lohmann@gmail.com>
2020-03-19 11:52:40 +01:00
chenguoping
bfc003cadf
catch exceptions for json_point : /xx/+99
2020-03-17 20:49:28 +08:00
Sergey Linev
00049c20d0
Rename argument array_index to array_indx in json_pointer methods
...
Fixes gcc48 warning:
declaration of ‘array_index’ shadows a member of 'this' [-Wshadow]
2020-03-11 07:41:53 +01:00
Francois Chabot
41b0704ce1
removed move assignments from input adapters
2020-03-02 23:50:01 -05:00
Francois Chabot
c7282d5b1e
simpler endian detection for older gcc versions
2020-02-20 10:19:29 -05:00
Francois Chabot
770ae6e9da
accomodate older gcc
2020-02-19 16:54:09 -05:00
Francois Chabot
de35fad88e
fixed missing return arg of operator=()
2020-02-19 15:23:49 -05:00
Francois Chabot
2e2cf02cfd
duck-typed object input adapters
2020-02-19 14:59:31 -05:00
Francois Chabot
617b3cf42e
templated input adapters
2020-02-19 10:32:49 -05:00
Niels Lohmann
61b46a56fb
🏗️ replace is_pod by is_trivial
2020-02-15 10:12:27 +01:00
Antoine Cœur
8d92ca865f
Some typos
2020-02-02 17:29:37 +08:00
Niels Lohmann
7acf6218b6
📝 fix typo #1903
2020-01-15 17:40:03 +01:00
Niels Lohmann
0feea6168d
📝 fix scanner documentation
2020-01-12 10:22:11 +01:00
Michael Balszun
5c045f7d0a
Use correct accumulator type in binary_writer if size_t != ul
...
- Also fixes warning in msvc about possible loss of data in
that size computation.
2019-11-19 11:06:45 +01:00
Niels Lohmann
62dada05ca
🐛 fix conversion to std::valarray
...
closes #1824
2019-11-05 19:28:00 +01:00
Niels Lohmann
7bcaba0ca9
Merge pull request #1821 from AnthonyVH/develop
...
Fix for #1647
2019-11-05 19:15:54 +01:00
Anthony VH
c4923e3d05
Merge remote-tracking branch 'upstream/develop' into develop
2019-11-04 20:50:43 +01:00
Camille Bégué
8b686b30eb
Add restriction for tuple specialization of to_json
...
This commit fix the issue #1825
Signed-off-by: Camille Bégué <c.begue@samsung.com>
2019-11-04 09:57:16 +01:00
Niels Lohmann
a1828bbf57
Merge pull request #1806 from cbegue/develop
...
Fix issue #1805
2019-11-01 19:46:19 +01:00
Camille Bégué
794a3d411a
Fix issue #1805
...
* Add some restriction on pair partial specialization of to_json
Signed-off-by: Camille Bégué <camille.begue.pro@gmail.com>
2019-10-31 18:04:15 +01:00
Anthony Van Herrewege
ddda67a096
Don't capture json input by value ( fixed #1822 ).
2019-10-30 16:16:34 +01: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
Niels Lohmann
d187488e0d
Merge pull request #1765 from crazyjul/fix/items-with-alt-string
...
Allow items() to be used with custom string
2019-10-05 22:11:14 +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
christian
7476f5ee0c
Make json_pointer::back const ( resolves #1764 )
2019-10-01 00:57:27 +02:00
Julien Hamaide
0f073e26eb
Allow items() to be used with custom string
2019-09-26 13:20:57 +02:00
Xav83
13a7c60257
Correct a warning from cppcheck:
...
binary_writer.hpp:869: (style) Consider using std::accumulate algorithm instead of a raw loop.
910a7d2b87/checks (step)
:5:107
Signed-off-by: Xav83 <x.jouvenot@gmail.com>
2019-09-20 11:45:38 +02:00
Xav83
b9dfdbe6be
Correct a warning from cppcheck:
...
binary_reader.hpp:650: (style) Unsigned expression 'mant' can't be negative so it is unnecessary to test it
910a7d2b87/checks (step)
:5:84
Signed-off-by: Xav83 <x.jouvenot@gmail.com>
2019-09-19 19:25:55 +02:00
Niels Lohmann
06ccd43a2a
Merge pull request #1722 from t-b/fix-int64-min-issue
...
Fix int64 min issue
2019-09-10 07:58:02 +02:00
Thomas Braun
6ce2f35ba8
Fix outputting extreme integer values in edge cases
...
For some gcc version (Ubuntu 5.5.0-12ubuntu1~16.04) the existing code
crashes when the minimum value of int64_t is outputted.
Resurrect the code from before 546e2cbf
(🚨 fixed some warnings,
2019-03-13) but delegate the sign removal so that the compilers don't
complain about taking the negative value of an unsigned value.
In addition we also rewrite the expression so that we first increment
and then negate.
The definition of remove_sign(number_unsigned_t) is never called as
unsigned values are never negative.
2019-09-03 13:55:15 +02:00
Thomas Braun
d5c0d52f37
external_constructor<std::valarray>: Handle empty array properly
...
Clang UBSAN complains with the following message when an empty std::valarray is passed in:
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/valarray:571:14 in
2/2 Test #68 : test-regression_all ..............***Failed 4.68 sec
/usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/valarray:571:14: runtime error: reference binding to null pointer of type 'const do
uble'
#0 0x6fbe57 in std::valarray<double>::operator[](unsigned long) const /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/valarray:
571:7
#1 0x6fbe57 in double const* std::begin<double>(std::valarray<double> const&) /usr/lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/v
alarray:1207
#2 0x6fbe57 in void nlohmann::detail::external_constructor<(nlohmann::detail::value_t)2>::construct<nlohmann::basic_json<std::map, std::vector, s
td::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_seri
alizer>, double, 0>(nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool
, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>&, std::valarray<double> const&) /home/firma/devel/json/include/nlohmann/deta
il/conversions/to_json.hpp:157
#3 0x5e3fe3 in void nlohmann::detail::to_json<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>
, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>, double, 0>(nlohmann::basic_json<std::map, std
::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohman
n::adl_serializer>&, std::valarray<double> const&) /home/firma/devel/json/include/nlohmann/detail/conversions/to_json.hpp:270:5
#4 0x5e3fe3 in decltype((to_json(fp, std::forward<std::valarray<double>&>(fp0))) , ((void)())) nlohmann::detail::to_json_fn::operator()<nlohmann:
:basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double
, std::allocator, nlohmann::adl_serializer>, std::valarray<double>&>(nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std
::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>&, std::valarray<double>&) c
onst /home/firma/devel/json/include/nlohmann/detail/conversions/to_json.hpp:334
#5 0x5e3fe3 in decltype((nlohmann::(anonymous namespace)::to_json(fp, std::forward<std::valarray<double>&>(fp0))) , ((void)())) nlohmann::adl_ser
ializer<std::valarray<double>, void>::to_json<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, st
d::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>, std::valarray<double>&>(nlohmann::basic_json<std:
:map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator
, nlohmann::adl_serializer>&, std::valarray<double>&) /home/firma/devel/json/include/nlohmann/adl_serializer.hpp:45
#6 0x5e3fe3 in nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool,
long, unsigned long, double, std::allocator, nlohmann::adl_serializer>::basic_json<std::valarray<double>&, std::valarray<double>, 0>(std::valarray<d
ouble>&) /home/firma/devel/json/include/nlohmann/json.hpp:1257
#7 0x5e3fe3 in _DOCTEST_ANON_FUNC_2() /home/firma/devel/json/test/src/unit-regression.cpp:1377
#8 0x77313e in doctest::Context::run() /home/firma/devel/json/test/thirdparty/doctest/doctest.h:5938:21
#9 0x777ae0 in main /home/firma/devel/json/test/thirdparty/doctest/doctest.h:6016:71
#10 0x7fae220532e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
#11 0x4a6479 in _start (/home/firma/devel/json/build/test/test-regression+0x4a6479)
The important thing to note here is that a std::valarray is *not* a STL
container, so the usual containter and iterator semantics don't apply.
Therefore we have to check if the container is non-empty before.
2019-09-03 13:22:03 +02:00
Thomas Braun
61fe5f1eee
input_buffer_adapter: Fix handling of nullptr input
...
Clang UBSAN currently complains that the char * to input_buffer_adapter
is a nullptr.
Turns out it is actually required to accept nullptr, see for example
line 415 in input_adapters.hpp
...
// the address of first cannot be used: use nullptr
ia = std::make_shared<input_buffer_adapter>(nullptr, len);
....
Therefore we have to handle it gracefully here. We now also ignore the
length parameter l if b is a nullptr.
2019-09-03 13:22:03 +02:00
Niels Lohmann
323cf95d8c
🚨 fix linter warning
2019-07-21 14:04:49 +02:00
Niels Lohmann
cf8251eb54
🚑 fix compiler errors
2019-07-14 21:19:55 +02:00