Commit graph

378 commits

Author SHA1 Message Date
Niels Lohmann 4bfe4add20
Merge pull request #2203 from t-b/use-unsigned-indizies-for-array-index-in-json-pointer
Use unsigned indizies for array index in json pointer
2020-06-23 09:16:01 +02:00
Thomas Braun ecbb2756fd json_pointer::array_index: Use unsigned values for the array index when parsing
The current code uses std::stoi to convert the input string to an int
array_index. This limits the maximum addressable array size to ~2GB on
most platforms.

But all callers immediately convert the result of array_index to
BasicJsonType::size_type.

So let's parse it as unsigned long long, which allows us to have as
big arrays as available memory. And also makes the call sites nicer to
read.

One complication arises on platforms where size_type is smaller than
unsigned long long. We need to bail out on these if the parsed array
index does not fit into size_type.
2020-06-22 13:42:55 +02:00
Niels Lohmann 29ad2178c6
Merge pull request #2176 from gracicot/cpp20-support-no-std-fct-templ-specialization
C++20 support by removing swap specialization
2020-06-21 20:39:58 +02:00
Thomas Braun f0e73163f2 json_pointer.hpp: Mention more exception in documentation
Forgotten in dcd3a6c6 (move the catch of std::invalid_argument into
array_index(), 2020-03-23).
2020-06-20 15:27:22 +02:00
Niels Lohmann b64002bbca
♻️ extract common code to function 2020-06-19 13:24:08 +02:00
Niels Lohmann 88a37010d6
🐛 serialize 32-bit floating-point numbers as float 32 in MessagePack (0xCA) #2196 2020-06-17 21:14:23 +02:00
Niels Lohmann ae04426c85
🏁 fix for MSVC (see https://github.com/nlohmann/json/pull/2178#issuecomment-640622532) 2020-06-08 20:07:15 +02:00
Niels Lohmann 6d73126ea9
🚨 fix warnings 2020-06-07 22:47:25 +02:00
Niels Lohmann 907803189b
🏁 fix MSVC 2015 compilation 2020-06-07 12:51:33 +02:00
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
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