mirror of
https://github.com/nlohmann/json.git
synced 2026-06-21 19:54:18 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6496e13b07 |
@@ -1,7 +1,5 @@
|
|||||||
Checks: '*,
|
Checks: '*,
|
||||||
-altera-struct-pack-align,
|
|
||||||
-android-cloexec-fopen,
|
-android-cloexec-fopen,
|
||||||
-concurrency-mt-unsafe,
|
|
||||||
-cppcoreguidelines-avoid-goto,
|
-cppcoreguidelines-avoid-goto,
|
||||||
-cppcoreguidelines-avoid-magic-numbers,
|
-cppcoreguidelines-avoid-magic-numbers,
|
||||||
-cppcoreguidelines-avoid-non-const-global-variables,
|
-cppcoreguidelines-avoid-non-const-global-variables,
|
||||||
@@ -32,7 +30,6 @@ Checks: '*,
|
|||||||
-misc-non-private-member-variables-in-classes,
|
-misc-non-private-member-variables-in-classes,
|
||||||
-modernize-use-trailing-return-type,
|
-modernize-use-trailing-return-type,
|
||||||
-readability-function-size,
|
-readability-function-size,
|
||||||
-readability-function-cognitive-complexity,
|
|
||||||
-readability-magic-numbers,
|
-readability-magic-numbers,
|
||||||
-readability-redundant-access-specifiers,
|
-readability-redundant-access-specifiers,
|
||||||
-readability-uppercase-literal-suffix'
|
-readability-uppercase-literal-suffix'
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ assignees: ''
|
|||||||
|
|
||||||
<!-- Please add an `x` to the respective line. -->
|
<!-- Please add an `x` to the respective line. -->
|
||||||
|
|
||||||
- [ ] latest release version 3.10.3
|
- [ ] latest release version 3.10.0
|
||||||
- [ ] other release - please state the version: ___
|
- [ ] other release - please state the version: ___
|
||||||
- [ ] the `develop` branch
|
- [ ] the `develop` branch
|
||||||
|
|
||||||
|
|||||||
@@ -11,9 +11,20 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
ci_test_clang:
|
ci_test_clang:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v1.0.0
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
- name: install_ninja
|
||||||
|
run: |
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install ninja-build
|
||||||
|
shell: bash
|
||||||
|
- name: install_clang
|
||||||
|
run: |
|
||||||
|
wget https://apt.llvm.org/llvm.sh
|
||||||
|
chmod +x llvm.sh
|
||||||
|
sudo ./llvm.sh 11
|
||||||
|
sudo apt-get install clang-tools-11
|
||||||
|
shell: bash
|
||||||
- name: cmake
|
- name: cmake
|
||||||
run: cmake -S . -B build -DJSON_CI=On
|
run: cmake -S . -B build -DJSON_CI=On
|
||||||
- name: build
|
- name: build
|
||||||
@@ -21,7 +32,7 @@ jobs:
|
|||||||
|
|
||||||
ci_test_gcc:
|
ci_test_gcc:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v1.0.0
|
container: nlohmann/json-ci:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@@ -31,7 +42,7 @@ jobs:
|
|||||||
|
|
||||||
ci_static_analysis:
|
ci_static_analysis:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v1.0.0
|
container: nlohmann/json-ci:latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
target: [ci_clang_tidy, ci_cppcheck, ci_test_valgrind, ci_test_clang_sanitizer, ci_test_amalgamation, ci_clang_analyze, ci_cpplint, ci_cmake_flags, ci_single_binaries, ci_reproducible_tests, ci_non_git_tests, ci_offline_testdata, ci_infer]
|
target: [ci_clang_tidy, ci_cppcheck, ci_test_valgrind, ci_test_clang_sanitizer, ci_test_amalgamation, ci_clang_analyze, ci_cpplint, ci_cmake_flags, ci_single_binaries, ci_reproducible_tests, ci_non_git_tests, ci_offline_testdata, ci_infer]
|
||||||
@@ -44,7 +55,7 @@ jobs:
|
|||||||
|
|
||||||
ci_cmake_options:
|
ci_cmake_options:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v1.0.0
|
container: nlohmann/json-ci:latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
target: [ci_test_diagnostics, ci_test_noexceptions, ci_test_noimplicitconversions]
|
target: [ci_test_diagnostics, ci_test_noexceptions, ci_test_noimplicitconversions]
|
||||||
@@ -57,7 +68,7 @@ jobs:
|
|||||||
|
|
||||||
ci_test_coverage:
|
ci_test_coverage:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v1.0.0
|
container: nlohmann/json-ci:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@@ -77,10 +88,10 @@ jobs:
|
|||||||
|
|
||||||
ci_test_compilers:
|
ci_test_compilers:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v1.0.0
|
container: nlohmann/json-ci:latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
compiler: [g++-4.8, g++-4.9, g++-5, g++-7, g++-8, g++-9, g++-10, clang++-3.5, clang++-3.6, clang++-3.7, clang++-3.8, clang++-3.9, clang++-4.0, clang++-5.0, clang++-6.0, clang++-7, clang++-8, clang++-9, clang++-10, clang++-11, clang++-12]
|
compiler: [g++-4.8, g++-4.9, g++-5, g++-7, g++-8, g++-9, g++-10, clang++-3.5, clang++-3.6, clang++-3.7, clang++-3.8, clang++-3.9, clang++-4.0, clang++-5.0, clang++-6.0, clang++-7, clang++-8, clang++-9, clang++-10, clang++-11]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@@ -90,7 +101,7 @@ jobs:
|
|||||||
|
|
||||||
ci_test_standards:
|
ci_test_standards:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v1.0.0
|
container: nlohmann/json-ci:latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
standard: [11, 14, 17, 20]
|
standard: [11, 14, 17, 20]
|
||||||
|
|||||||
@@ -38,13 +38,13 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: cmake
|
- name: cmake
|
||||||
run: cmake -S . -B build -G "Visual Studio 15 2017" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/W4 /WX"
|
run: cmake -S . -B build -G "Visual Studio 15 2017" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DCMAKE_EXE_LINKER_FLAGS="/STACK:4000000" -DCMAKE_CXX_FLAGS="/W4 /WX"
|
||||||
if: matrix.build_type == 'Release' && matrix.architecture == 'x64'
|
if: matrix.build_type == 'Release' && matrix.architecture == 'x64'
|
||||||
- name: cmake
|
- name: cmake
|
||||||
run: cmake -S . -B build -G "Visual Studio 15 2017" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/W4 /WX"
|
run: cmake -S . -B build -G "Visual Studio 15 2017" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/W4 /WX"
|
||||||
if: matrix.build_type == 'Release' && matrix.architecture != 'x64'
|
if: matrix.build_type == 'Release' && matrix.architecture != 'x64'
|
||||||
- name: cmake
|
- name: cmake
|
||||||
run: cmake -S . -B build -G "Visual Studio 15 2017" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DJSON_FastTests=ON -DCMAKE_CXX_FLAGS="/W4 /WX"
|
run: cmake -S . -B build -G "Visual Studio 15 2017" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DJSON_FastTests=ON -DCMAKE_EXE_LINKER_FLAGS="/STACK:4000000" -DCMAKE_CXX_FLAGS="/W4 /WX"
|
||||||
if: matrix.build_type == 'Debug'
|
if: matrix.build_type == 'Debug'
|
||||||
- name: build
|
- name: build
|
||||||
run: cmake --build build --config ${{ matrix.build_type }} --parallel 10
|
run: cmake --build build --config ${{ matrix.build_type }} --parallel 10
|
||||||
@@ -76,7 +76,7 @@ jobs:
|
|||||||
run: cmake -S . -B build -G "Visual Studio 16 2019" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/W4 /WX"
|
run: cmake -S . -B build -G "Visual Studio 16 2019" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/W4 /WX"
|
||||||
if: matrix.build_type == 'Release'
|
if: matrix.build_type == 'Release'
|
||||||
- name: cmake
|
- name: cmake
|
||||||
run: cmake -S . -B build -G "Visual Studio 16 2019" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DJSON_FastTests=ON -DCMAKE_CXX_FLAGS="/W4 /WX"
|
run: cmake -S . -B build -G "Visual Studio 16 2019" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DJSON_FastTests=ON -DCMAKE_EXE_LINKER_FLAGS="/STACK:4000000" -DCMAKE_CXX_FLAGS="/W4 /WX"
|
||||||
if: matrix.build_type == 'Debug'
|
if: matrix.build_type == 'Debug'
|
||||||
- name: build
|
- name: build
|
||||||
run: cmake --build build --config ${{ matrix.build_type }} --parallel 10
|
run: cmake --build build --config ${{ matrix.build_type }} --parallel 10
|
||||||
@@ -89,7 +89,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: cmake
|
- name: cmake
|
||||||
run: cmake -S . -B build -G "Visual Studio 16 2019" -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/permissive- /std:c++latest /utf-8 /W4 /WX"
|
run: cmake -S . -B build -G "Visual Studio 16 2019" -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="/permissive- /std:c++latest /utf-8 /W4 /WX" -DCMAKE_EXE_LINKER_FLAGS="/STACK:4000000"
|
||||||
- name: build
|
- name: build
|
||||||
run: cmake --build build --config Release --parallel 10
|
run: cmake --build build --config Release --parallel 10
|
||||||
- name: test
|
- name: test
|
||||||
|
|||||||
+6
-3
@@ -12,6 +12,10 @@ build
|
|||||||
build_coverage
|
build_coverage
|
||||||
clang_analyze_build
|
clang_analyze_build
|
||||||
|
|
||||||
|
doc/xml
|
||||||
|
doc/html
|
||||||
|
me.nlohmann.json.docset
|
||||||
|
|
||||||
benchmarks/files/numbers/*.json
|
benchmarks/files/numbers/*.json
|
||||||
|
|
||||||
.wsjcpp-logs/*
|
.wsjcpp-logs/*
|
||||||
@@ -23,11 +27,10 @@ benchmarks/files/numbers/*.json
|
|||||||
test/test-*
|
test/test-*
|
||||||
/.vs
|
/.vs
|
||||||
|
|
||||||
doc/html
|
|
||||||
doc/mkdocs/venv/
|
doc/mkdocs/venv/
|
||||||
doc/mkdocs/docs/images
|
doc/mkdocs/docs/images
|
||||||
doc/mkdocs/docs/examples
|
doc/mkdocs/docs/examples
|
||||||
doc/mkdocs/site
|
doc/mkdocs/site
|
||||||
doc/mkdocs/docs/__pycache__/
|
doc/mkdocs/docs/__pycache__/
|
||||||
/doc/docset/JSON_for_Modern_C++.docset/
|
doc/xml
|
||||||
/doc/docset/JSON_for_Modern_C++.tgz
|
/doc/docset/nlohmann_json.docset/
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@ authors:
|
|||||||
email: mail@nlohmann.me
|
email: mail@nlohmann.me
|
||||||
website: https://nlohmann.me
|
website: https://nlohmann.me
|
||||||
title: "JSON for Modern C++"
|
title: "JSON for Modern C++"
|
||||||
version: 3.10.3
|
version: 3.10.0
|
||||||
date-released: 2021
|
date-released: 2021
|
||||||
license: MIT
|
license: MIT
|
||||||
repository-code: "https://github.com/nlohmann"
|
repository-code: "https://github.com/nlohmann"
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.1)
|
|||||||
## PROJECT
|
## PROJECT
|
||||||
## name and version
|
## name and version
|
||||||
##
|
##
|
||||||
project(nlohmann_json VERSION 3.10.3 LANGUAGES CXX)
|
project(nlohmann_json VERSION 3.10.0 LANGUAGES CXX)
|
||||||
|
|
||||||
##
|
##
|
||||||
## MAIN_PROJECT CHECK
|
## MAIN_PROJECT CHECK
|
||||||
|
|||||||
@@ -1,76 +1,6 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
|
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
## [3.10.3](https://github.com/nlohmann/json/releases/tag/3.10.3) (2021-10-08)
|
|
||||||
|
|
||||||
[Full Changelog](https://github.com/nlohmann/json/compare/v3.10.2...3.10.3)
|
|
||||||
|
|
||||||
- Parsing an emtpy string returns a string with size 1 instead of expected 0 [\#3057](https://github.com/nlohmann/json/issues/3057)
|
|
||||||
- Linking error "duplicate symbol: std::type\_info::operator==" on static build with MinGW [\#3042](https://github.com/nlohmann/json/issues/3042)
|
|
||||||
- Yet another assertion failure when inserting into arrays with JSON\_DIAGNOSTICS set [\#3032](https://github.com/nlohmann/json/issues/3032)
|
|
||||||
- accept and parse function not work well with a pure number string [\#3029](https://github.com/nlohmann/json/issues/3029)
|
|
||||||
- push\_back doesn't work for serializing containers [\#3027](https://github.com/nlohmann/json/issues/3027)
|
|
||||||
- Strange behaviour when creating array with single element [\#3025](https://github.com/nlohmann/json/issues/3025)
|
|
||||||
- Input ordered\_json doesn't work [\#3023](https://github.com/nlohmann/json/issues/3023)
|
|
||||||
- Issue iterating through 'items' [\#3021](https://github.com/nlohmann/json/issues/3021)
|
|
||||||
- Cannot spell the namespace right [\#3015](https://github.com/nlohmann/json/issues/3015)
|
|
||||||
- JSON Parse error when reading json object from file [\#3011](https://github.com/nlohmann/json/issues/3011)
|
|
||||||
- Parent pointer not properly set when using update\(\) [\#3007](https://github.com/nlohmann/json/issues/3007)
|
|
||||||
- Overwriting terminated null character [\#3001](https://github.com/nlohmann/json/issues/3001)
|
|
||||||
- 'operator =' is ambiguous on VS2017 [\#2997](https://github.com/nlohmann/json/issues/2997)
|
|
||||||
- JSON Patch for Array Elements [\#2994](https://github.com/nlohmann/json/issues/2994)
|
|
||||||
- JSON Parse throwing error [\#2983](https://github.com/nlohmann/json/issues/2983)
|
|
||||||
- to\_{binary format} does not provide a mechanism for specifying a custom allocator for the returned type. [\#2982](https://github.com/nlohmann/json/issues/2982)
|
|
||||||
- 3.10.1 zip json.hpp has version number 3.10.0 instead of 3.10.1 [\#2973](https://github.com/nlohmann/json/issues/2973)
|
|
||||||
- Assertion failure when serializing array with JSON\_DIAGNOSTICS set [\#2926](https://github.com/nlohmann/json/issues/2926)
|
|
||||||
|
|
||||||
- Fix Clang version [\#3040](https://github.com/nlohmann/json/pull/3040) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Fix assertion failure for JSON\_DIAGNOSTICS [\#3037](https://github.com/nlohmann/json/pull/3037) ([carlsmedstad](https://github.com/carlsmedstad))
|
|
||||||
- meta: fix is\_compatible/constructible traits [\#3020](https://github.com/nlohmann/json/pull/3020) ([theodelrieu](https://github.com/theodelrieu))
|
|
||||||
- Set parent pointers for values inserted via update\(\) \(fixes \#3007\). [\#3008](https://github.com/nlohmann/json/pull/3008) ([AnthonyVH](https://github.com/AnthonyVH))
|
|
||||||
- Allow allocators for output\_vector\_adapter [\#2989](https://github.com/nlohmann/json/pull/2989) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Re-add Clang 12 [\#2986](https://github.com/nlohmann/json/pull/2986) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Use new Docker image [\#2981](https://github.com/nlohmann/json/pull/2981) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Fix -Wunused warnings on JSON\_DIAGNOSTICS [\#2976](https://github.com/nlohmann/json/pull/2976) ([gcerretani](https://github.com/gcerretani))
|
|
||||||
- Update docset generation script [\#2967](https://github.com/nlohmann/json/pull/2967) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
|
|
||||||
## [v3.10.2](https://github.com/nlohmann/json/releases/tag/v3.10.2) (2021-08-26)
|
|
||||||
|
|
||||||
[Full Changelog](https://github.com/nlohmann/json/compare/v3.10.1...v3.10.2)
|
|
||||||
|
|
||||||
- Annoying -Wundef on new JSON\_DIAGNOSTICS macro [\#2975](https://github.com/nlohmann/json/issues/2975)
|
|
||||||
- += issue with multiple redirection. [\#2970](https://github.com/nlohmann/json/issues/2970)
|
|
||||||
- "incomplete type ‘nlohmann::detail::wide\_string\_input\_helper" compilation error [\#2969](https://github.com/nlohmann/json/issues/2969)
|
|
||||||
|
|
||||||
## [v3.10.1](https://github.com/nlohmann/json/releases/tag/v3.10.1) (2021-08-24)
|
|
||||||
|
|
||||||
[Full Changelog](https://github.com/nlohmann/json/compare/v3.10.0...v3.10.1)
|
|
||||||
|
|
||||||
- JSON\_DIAGNOSTICS assertion for ordered\_json [\#2962](https://github.com/nlohmann/json/issues/2962)
|
|
||||||
- Inserting in unordered json using a pointer retains the leading slash [\#2958](https://github.com/nlohmann/json/issues/2958)
|
|
||||||
- Test \#9: test-cbor test case sample.json fails in debug mode - Stack overflow [\#2955](https://github.com/nlohmann/json/issues/2955)
|
|
||||||
- 3.10.0 broke at least the Bear project [\#2953](https://github.com/nlohmann/json/issues/2953)
|
|
||||||
- 2 tests fail in 3.10.0: cmake\_fetch\_content\_configure, cmake\_fetch\_content\_build [\#2951](https://github.com/nlohmann/json/issues/2951)
|
|
||||||
- ctest \(58+60,/67 cmake\_import\_configure\) fails when build with -D JSON\_Install:BOOL=OFF because of missing nlohmann\_jsonTargets.cmake [\#2946](https://github.com/nlohmann/json/issues/2946)
|
|
||||||
- Document vcpkg usage [\#2944](https://github.com/nlohmann/json/issues/2944)
|
|
||||||
- Linker error LNK2005 when compiling \(x64\) json-3.10.0.zip with Visual Studio 2019 16.11.1 [\#2941](https://github.com/nlohmann/json/issues/2941)
|
|
||||||
- Move Travis jobs to travis-ci.com [\#2938](https://github.com/nlohmann/json/issues/2938)
|
|
||||||
|
|
||||||
- Fixed typo in docs/api/basic\_json/parse.md [\#2968](https://github.com/nlohmann/json/pull/2968) ([mb0202](https://github.com/mb0202))
|
|
||||||
- Add link to Homebrew package [\#2966](https://github.com/nlohmann/json/pull/2966) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Fix parent update for diagnostics with ordered\_json [\#2963](https://github.com/nlohmann/json/pull/2963) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Set stack size for some unit tests when using MSVC [\#2961](https://github.com/nlohmann/json/pull/2961) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Add regression test [\#2960](https://github.com/nlohmann/json/pull/2960) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Update Travis badge [\#2959](https://github.com/nlohmann/json/pull/2959) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Fix some extra ";" clang warnings [\#2957](https://github.com/nlohmann/json/pull/2957) ([Hallot](https://github.com/Hallot))
|
|
||||||
- Add documentation for integration via vcpkg [\#2954](https://github.com/nlohmann/json/pull/2954) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Avoid duplicate AppVeyor builds [\#2952](https://github.com/nlohmann/json/pull/2952) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- 🚨 fix gdb\_pretty\_printer failure on basic types [\#2950](https://github.com/nlohmann/json/pull/2950) ([senyai](https://github.com/senyai))
|
|
||||||
- Add header to use value\_t [\#2948](https://github.com/nlohmann/json/pull/2948) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Skip some tests if JSON\_Install is not set [\#2947](https://github.com/nlohmann/json/pull/2947) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Remove outdated json\_unit test binary [\#2945](https://github.com/nlohmann/json/pull/2945) ([nlohmann](https://github.com/nlohmann))
|
|
||||||
- Updating the Homebrew Command [\#2943](https://github.com/nlohmann/json/pull/2943) ([amirmasoudabdol](https://github.com/amirmasoudabdol))
|
|
||||||
|
|
||||||
## [v3.10.0](https://github.com/nlohmann/json/releases/tag/v3.10.0) (2021-08-17)
|
## [v3.10.0](https://github.com/nlohmann/json/releases/tag/v3.10.0) (2021-08-17)
|
||||||
|
|
||||||
[Full Changelog](https://github.com/nlohmann/json/compare/v3.9.1...v3.10.0)
|
[Full Changelog](https://github.com/nlohmann/json/compare/v3.9.1...v3.10.0)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[](https://github.com/nlohmann/json/releases)
|
[](https://github.com/nlohmann/json/releases)
|
||||||
|
|
||||||
[](https://app.travis-ci.com/nlohmann/json)
|
[](https://travis-ci.org/nlohmann/json)
|
||||||
[](https://ci.appveyor.com/project/nlohmann/json)
|
[](https://ci.appveyor.com/project/nlohmann/json)
|
||||||
[](https://github.com/nlohmann/json/actions?query=workflow%3AUbuntu)
|
[](https://github.com/nlohmann/json/actions?query=workflow%3AUbuntu)
|
||||||
[](https://github.com/nlohmann/json/actions?query=workflow%3AmacOS)
|
[](https://github.com/nlohmann/json/actions?query=workflow%3AmacOS)
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
[](https://www.codacy.com/gh/nlohmann/json/dashboard?utm_source=github.com&utm_medium=referral&utm_content=nlohmann/json&utm_campaign=Badge_Grade)
|
[](https://www.codacy.com/gh/nlohmann/json/dashboard?utm_source=github.com&utm_medium=referral&utm_content=nlohmann/json&utm_campaign=Badge_Grade)
|
||||||
[](https://lgtm.com/projects/g/nlohmann/json/context:cpp)
|
[](https://lgtm.com/projects/g/nlohmann/json/context:cpp)
|
||||||
[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:json)
|
[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:json)
|
||||||
[](https://wandbox.org/permlink/0LzTlmYG06u8qJN5)
|
[](https://wandbox.org/permlink/3lCHrFUZANONKv7a)
|
||||||
[](https://nlohmann.github.io/json/doxygen/index.html)
|
[](https://nlohmann.github.io/json/doxygen/index.html)
|
||||||
[](https://raw.githubusercontent.com/nlohmann/json/master/LICENSE.MIT)
|
[](https://raw.githubusercontent.com/nlohmann/json/master/LICENSE.MIT)
|
||||||
[](https://github.com/nlohmann/json/releases)
|
[](https://github.com/nlohmann/json/releases)
|
||||||
@@ -90,7 +90,6 @@ Thanks everyone!
|
|||||||
|
|
||||||
:bug: If you found a **bug**, please check the [**FAQ**](https://json.nlohmann.me/home/faq/) if it is a known issue or the result of a design decision. Please also have a look at the [**issue list**](https://github.com/nlohmann/json/issues) before you [**create a new issue**](https://github.com/nlohmann/json/issues/new/choose). Please provide as many information as possible to help us understand and reproduce your issue.
|
:bug: If you found a **bug**, please check the [**FAQ**](https://json.nlohmann.me/home/faq/) if it is a known issue or the result of a design decision. Please also have a look at the [**issue list**](https://github.com/nlohmann/json/issues) before you [**create a new issue**](https://github.com/nlohmann/json/issues/new/choose). Please provide as many information as possible to help us understand and reproduce your issue.
|
||||||
|
|
||||||
There is also a [**docset**](https://github.com/Kapeli/Dash-User-Contributions/tree/master/docsets/JSON_for_Modern_C%2B%2B) for the documentation browsers [Dash](https://kapeli.com/dash), [Velocity](https://velocity.silverlakesoftware.com), and [Zeal](https://zealdocs.org) that contains the full [documentation](https://json.nlohmann.me) as offline resource.
|
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
@@ -1039,7 +1038,7 @@ auto cbor = json::to_msgpack(j); // 0xD5 (fixext2), 0x10, 0xCA, 0xFE
|
|||||||
Though it's 2021 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work:
|
Though it's 2021 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work:
|
||||||
|
|
||||||
- GCC 4.8 - 11.0 (and possibly later)
|
- GCC 4.8 - 11.0 (and possibly later)
|
||||||
- Clang 3.4 - 13.0 (and possibly later)
|
- Clang 3.4 - 12.0 (and possibly later)
|
||||||
- Apple Clang 9.1 - 12.4 (and possibly later)
|
- Apple Clang 9.1 - 12.4 (and possibly later)
|
||||||
- Intel C++ Compiler 17.0.2 (and possibly later)
|
- Intel C++ Compiler 17.0.2 (and possibly later)
|
||||||
- Microsoft Visual C++ 2015 / Build Tools 14.0.25123.0 (and possibly later)
|
- Microsoft Visual C++ 2015 / Build Tools 14.0.25123.0 (and possibly later)
|
||||||
@@ -1111,8 +1110,7 @@ The following compilers are currently used in continuous integration at [Travis]
|
|||||||
| Clang 11.0.0 with GNU-like command-line | Windows-10.0.17763 | GitHub Actions |
|
| Clang 11.0.0 with GNU-like command-line | Windows-10.0.17763 | GitHub Actions |
|
||||||
| Clang 11.0.0 with MSVC-like command-line | Windows-10.0.17763 | GitHub Actions |
|
| Clang 11.0.0 with MSVC-like command-line | Windows-10.0.17763 | GitHub Actions |
|
||||||
| Clang 11.0.0 (11.0.0-2~ubuntu20.04.1) | Ubuntu 20.04.2 LTS | GitHub Actions |
|
| Clang 11.0.0 (11.0.0-2~ubuntu20.04.1) | Ubuntu 20.04.2 LTS | GitHub Actions |
|
||||||
| Clang 12.0.0 (12.0.0-3ubuntu1~20.04.3) | Ubuntu 20.04.2 LTS | GitHub Actions |
|
| Clang 12.1.0 (12.0.1-++20210423082613+072c90a863aa-1~exp1~20210423063319.76 | Ubuntu 20.04.2 LTS | GitHub Actions |
|
||||||
| Clang 13.0.0 (13.0.0-++20210828094952+9c49fee5e7ac-1exp120210828075752.71 | Ubuntu 20.04.2 LTS | GitHub Actions |
|
|
||||||
| Visual Studio 14 2015 MSVC 19.0.24241.7 (Build Engine version 14.0.25420.1) | Windows-6.3.9600 | AppVeyor |
|
| Visual Studio 14 2015 MSVC 19.0.24241.7 (Build Engine version 14.0.25420.1) | Windows-6.3.9600 | AppVeyor |
|
||||||
| Visual Studio 15 2017 MSVC 19.16.27035.0 (Build Engine version 15.9.21+g9802d43bc3 for .NET Framework) | Windows-10.0.14393 | AppVeyor |
|
| Visual Studio 15 2017 MSVC 19.16.27035.0 (Build Engine version 15.9.21+g9802d43bc3 for .NET Framework) | Windows-10.0.14393 | AppVeyor |
|
||||||
| Visual Studio 15 2017 MSVC 19.16.27045.0 (Build Engine version 15.9.21+g9802d43bc3 for .NET Framework) | Windows-10.0.14393 | GitHub Actions |
|
| Visual Studio 15 2017 MSVC 19.16.27045.0 (Build Engine version 15.9.21+g9802d43bc3 for .NET Framework) | Windows-10.0.14393 | GitHub Actions |
|
||||||
@@ -1240,7 +1238,7 @@ endif()
|
|||||||
|
|
||||||
### Package Managers
|
### Package Managers
|
||||||
|
|
||||||
:beer: If you are using OS X and [Homebrew](https://brew.sh), just type `brew install nlohmann-json` and you're set. If you want the bleeding edge rather than the latest release, use `brew install nlohmann-json --HEAD`. See [nlohmann-json](https://formulae.brew.sh/formula/nlohmann-json) for more information.
|
:beer: If you are using OS X and [Homebrew](https://brew.sh), just type `brew tap nlohmann/json` and `brew install nlohmann-json` and you're set. If you want the bleeding edge rather than the latest release, use `brew install nlohmann-json --HEAD`.
|
||||||
|
|
||||||
If you are using the [Meson Build System](https://mesonbuild.com), add this source tree as a [meson subproject](https://mesonbuild.com/Subprojects.html#using-a-subproject). You may also use the `include.zip` published in this project's [Releases](https://github.com/nlohmann/json/releases) to reduce the size of the vendored source tree. Alternatively, you can get a wrap file by downloading it from [Meson WrapDB](https://wrapdb.mesonbuild.com/nlohmann_json), or simply use `meson wrap install nlohmann_json`. Please see the meson project for any issues regarding the packaging.
|
If you are using the [Meson Build System](https://mesonbuild.com), add this source tree as a [meson subproject](https://mesonbuild.com/Subprojects.html#using-a-subproject). You may also use the `include.zip` published in this project's [Releases](https://github.com/nlohmann/json/releases) to reduce the size of the vendored source tree. Alternatively, you can get a wrap file by downloading it from [Meson WrapDB](https://wrapdb.mesonbuild.com/nlohmann_json), or simply use `meson wrap install nlohmann_json`. Please see the meson project for any issues regarding the packaging.
|
||||||
|
|
||||||
@@ -1254,7 +1252,7 @@ If you are using [hunter](https://github.com/cpp-pm/hunter) on your project for
|
|||||||
|
|
||||||
If you are using [Buckaroo](https://buckaroo.pm), you can install this library's module with `buckaroo add github.com/buckaroo-pm/nlohmann-json`. Please file issues [here](https://github.com/buckaroo-pm/nlohmann-json). There is a demo repo [here](https://github.com/njlr/buckaroo-nholmann-json-example).
|
If you are using [Buckaroo](https://buckaroo.pm), you can install this library's module with `buckaroo add github.com/buckaroo-pm/nlohmann-json`. Please file issues [here](https://github.com/buckaroo-pm/nlohmann-json). There is a demo repo [here](https://github.com/njlr/buckaroo-nholmann-json-example).
|
||||||
|
|
||||||
If you are using [vcpkg](https://github.com/Microsoft/vcpkg/) on your project for external dependencies, then you can install the [nlohmann-json package](https://github.com/Microsoft/vcpkg/tree/master/ports/nlohmann-json) with `vcpkg install nlohmann-json` and follow the then displayed descriptions. Please see the vcpkg project for any issues regarding the packaging.
|
If you are using [vcpkg](https://github.com/Microsoft/vcpkg/) on your project for external dependencies, then you can use the [nlohmann-json package](https://github.com/Microsoft/vcpkg/tree/master/ports/nlohmann-json). Please see the vcpkg project for any issues regarding the packaging.
|
||||||
|
|
||||||
If you are using [cget](https://cget.readthedocs.io/en/latest/), you can install the latest development version with `cget install nlohmann/json`. A specific version can be installed with `cget install nlohmann/json@v3.1.0`. Also, the multiple header version can be installed by adding the `-DJSON_MultipleHeaders=ON` flag (i.e., `cget install nlohmann/json -DJSON_MultipleHeaders=ON`).
|
If you are using [cget](https://cget.readthedocs.io/en/latest/), you can install the latest development version with `cget install nlohmann/json`. A specific version can be installed with `cget install nlohmann/json@v3.1.0`. Also, the multiple header version can be installed by adding the `-DJSON_MultipleHeaders=ON` flag (i.e., `cget install nlohmann/json -DJSON_MultipleHeaders=ON`).
|
||||||
|
|
||||||
@@ -1264,9 +1262,7 @@ If you are using [NuGet](https://www.nuget.org), you can use the package [nlohma
|
|||||||
|
|
||||||
If you are using [conda](https://conda.io/), you can use the package [nlohmann_json](https://github.com/conda-forge/nlohmann_json-feedstock) from [conda-forge](https://conda-forge.org) executing `conda install -c conda-forge nlohmann_json`. Please file issues [here](https://github.com/conda-forge/nlohmann_json-feedstock/issues).
|
If you are using [conda](https://conda.io/), you can use the package [nlohmann_json](https://github.com/conda-forge/nlohmann_json-feedstock) from [conda-forge](https://conda-forge.org) executing `conda install -c conda-forge nlohmann_json`. Please file issues [here](https://github.com/conda-forge/nlohmann_json-feedstock/issues).
|
||||||
|
|
||||||
If you are using [MSYS2](https://www.msys2.org/), you can use the [mingw-w64-nlohmann-json](https://packages.msys2.org/base/mingw-w64-nlohmann-json) package, just type `pacman -S mingw-w64-i686-nlohmann-json` or `pacman -S mingw-w64-x86_64-nlohmann-json` for installation. Please file issues [here](https://github.com/msys2/MINGW-packages/issues/new?title=%5Bnlohmann-json%5D) if you experience problems with the packages.
|
If you are using [MSYS2](https://www.msys2.org/), your can use the [mingw-w64-nlohmann-json](https://packages.msys2.org/base/mingw-w64-nlohmann-json) package, just type `pacman -S mingw-w64-i686-nlohmann-json` or `pacman -S mingw-w64-x86_64-nlohmann-json` for installation. Please file issues [here](https://github.com/msys2/MINGW-packages/issues/new?title=%5Bnlohmann-json%5D) if you experience problems with the packages.
|
||||||
|
|
||||||
If you are using [MacPorts](https://ports.macports.org), execute `sudo port install nlohmann-json` to install the [nlohmann-json](https://ports.macports.org/port/nlohmann-json/) package.
|
|
||||||
|
|
||||||
If you are using [`build2`](https://build2.org), you can use the [`nlohmann-json`](https://cppget.org/nlohmann-json) package from the public repository https://cppget.org or directly from the [package's sources repository](https://github.com/build2-packaging/nlohmann-json). In your project's `manifest` file, just add `depends: nlohmann-json` (probably with some [version constraints](https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml#guide-add-remove-deps)). If you are not familiar with using dependencies in `build2`, [please read this introduction](https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml).
|
If you are using [`build2`](https://build2.org), you can use the [`nlohmann-json`](https://cppget.org/nlohmann-json) package from the public repository https://cppget.org or directly from the [package's sources repository](https://github.com/build2-packaging/nlohmann-json). In your project's `manifest` file, just add `depends: nlohmann-json` (probably with some [version constraints](https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml#guide-add-remove-deps)). If you are not familiar with using dependencies in `build2`, [please read this introduction](https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml).
|
||||||
Please file issues [here](https://github.com/build2-packaging/nlohmann-json) if you experience problems with the packages.
|
Please file issues [here](https://github.com/build2-packaging/nlohmann-json) if you experience problems with the packages.
|
||||||
@@ -1591,12 +1587,6 @@ I deeply appreciate the help of the following people.
|
|||||||
- [justanotheranonymoususer](https://github.com/justanotheranonymoususer) made the examples in the README more consistent.
|
- [justanotheranonymoususer](https://github.com/justanotheranonymoususer) made the examples in the README more consistent.
|
||||||
- [Finkman](https://github.com/Finkman) suppressed some `-Wfloat-equal` warnings.
|
- [Finkman](https://github.com/Finkman) suppressed some `-Wfloat-equal` warnings.
|
||||||
- [Ferry Huberts](https://github.com/fhuberts) fixed `-Wswitch-enum` warnings.
|
- [Ferry Huberts](https://github.com/fhuberts) fixed `-Wswitch-enum` warnings.
|
||||||
- [Arseniy Terekhin](https://github.com/senyai) made the GDB pretty-printer robust against unset variable names.
|
|
||||||
- [Amir Masoud Abdol](https://github.com/amirmasoudabdol) updated the Homebrew command as nlohmann/json is now in homebrew-core.
|
|
||||||
- [Hallot](https://github.com/Hallot) fixed some `-Wextra-semi-stmt warnings`.
|
|
||||||
- [Giovanni Cerretani](https://github.com/gcerretani) fixed `-Wunused` warnings on `JSON_DIAGNOSTICS`.
|
|
||||||
- [Bogdan Popescu](https://github.com/Kapeli) hosts the [docset](https://github.com/Kapeli/Dash-User-Contributions/tree/master/docsets/JSON_for_Modern_C%2B%2B) for offline documentation viewers.
|
|
||||||
- [Carl Smedstad](https://github.com/carlsmedstad) fixed an assertion error when using `JSON_DIAGNOSTICS`.
|
|
||||||
|
|
||||||
Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone.
|
Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone.
|
||||||
|
|
||||||
@@ -1628,7 +1618,7 @@ The library itself consists of a single header file licensed under the MIT licen
|
|||||||
- [**send_to_wandbox**](https://github.com/nlohmann/json/blob/develop/doc/scripts/send_to_wandbox.py) to send code examples to [Wandbox](https://wandbox.org)
|
- [**send_to_wandbox**](https://github.com/nlohmann/json/blob/develop/doc/scripts/send_to_wandbox.py) to send code examples to [Wandbox](https://wandbox.org)
|
||||||
- [**Travis**](https://travis-ci.org) for [continuous integration](https://travis-ci.org/nlohmann/json) on Linux and macOS
|
- [**Travis**](https://travis-ci.org) for [continuous integration](https://travis-ci.org/nlohmann/json) on Linux and macOS
|
||||||
- [**Valgrind**](https://valgrind.org) to check for correct memory management
|
- [**Valgrind**](https://valgrind.org) to check for correct memory management
|
||||||
- [**Wandbox**](https://wandbox.org) for [online examples](https://wandbox.org/permlink/0LzTlmYG06u8qJN5)
|
- [**Wandbox**](https://wandbox.org) for [online examples](https://wandbox.org/permlink/3lCHrFUZANONKv7a)
|
||||||
|
|
||||||
|
|
||||||
## Projects using JSON for Modern C++
|
## Projects using JSON for Modern C++
|
||||||
|
|||||||
+9
-8
@@ -6,6 +6,7 @@ environment:
|
|||||||
configuration: Debug
|
configuration: Debug
|
||||||
platform: x86
|
platform: x86
|
||||||
CXX_FLAGS: "/W4 /WX"
|
CXX_FLAGS: "/W4 /WX"
|
||||||
|
LINKER_FLAGS: ""
|
||||||
CMAKE_OPTIONS: ""
|
CMAKE_OPTIONS: ""
|
||||||
GENERATOR: Visual Studio 14 2015
|
GENERATOR: Visual Studio 14 2015
|
||||||
|
|
||||||
@@ -13,6 +14,7 @@ environment:
|
|||||||
configuration: Release
|
configuration: Release
|
||||||
platform: x86
|
platform: x86
|
||||||
CXX_FLAGS: "/W4 /WX"
|
CXX_FLAGS: "/W4 /WX"
|
||||||
|
LINKER_FLAGS: ""
|
||||||
CMAKE_OPTIONS: ""
|
CMAKE_OPTIONS: ""
|
||||||
GENERATOR: Visual Studio 14 2015
|
GENERATOR: Visual Studio 14 2015
|
||||||
|
|
||||||
@@ -21,6 +23,7 @@ environment:
|
|||||||
platform: x86
|
platform: x86
|
||||||
name: with_win_header
|
name: with_win_header
|
||||||
CXX_FLAGS: "/W4 /WX"
|
CXX_FLAGS: "/W4 /WX"
|
||||||
|
LINKER_FLAGS: ""
|
||||||
CMAKE_OPTIONS: ""
|
CMAKE_OPTIONS: ""
|
||||||
GENERATOR: Visual Studio 14 2015
|
GENERATOR: Visual Studio 14 2015
|
||||||
|
|
||||||
@@ -28,6 +31,7 @@ environment:
|
|||||||
configuration: Release
|
configuration: Release
|
||||||
platform: x86
|
platform: x86
|
||||||
CXX_FLAGS: "/permissive- /std:c++latest /utf-8 /W4 /WX"
|
CXX_FLAGS: "/permissive- /std:c++latest /utf-8 /W4 /WX"
|
||||||
|
LINKER_FLAGS: ""
|
||||||
CMAKE_OPTIONS: ""
|
CMAKE_OPTIONS: ""
|
||||||
GENERATOR: Visual Studio 15 2017
|
GENERATOR: Visual Studio 15 2017
|
||||||
|
|
||||||
@@ -35,6 +39,7 @@ environment:
|
|||||||
configuration: Release
|
configuration: Release
|
||||||
platform: x86
|
platform: x86
|
||||||
CXX_FLAGS: "/W4 /WX"
|
CXX_FLAGS: "/W4 /WX"
|
||||||
|
LINKER_FLAGS: ""
|
||||||
CMAKE_OPTIONS: "-DJSON_ImplicitConversions=OFF"
|
CMAKE_OPTIONS: "-DJSON_ImplicitConversions=OFF"
|
||||||
GENERATOR: Visual Studio 16 2019
|
GENERATOR: Visual Studio 16 2019
|
||||||
|
|
||||||
@@ -42,13 +47,15 @@ environment:
|
|||||||
configuration: Release
|
configuration: Release
|
||||||
platform: x64
|
platform: x64
|
||||||
CXX_FLAGS: "/W4 /WX"
|
CXX_FLAGS: "/W4 /WX"
|
||||||
|
LINKER_FLAGS: ""
|
||||||
CMAKE_OPTIONS: ""
|
CMAKE_OPTIONS: ""
|
||||||
GENERATOR: Visual Studio 14 2015
|
GENERATOR: Visual Studio 14 2015
|
||||||
|
|
||||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
configuration: Release
|
configuration: Release
|
||||||
platform: x64
|
platform: x64
|
||||||
CXX_FLAGS: "/permissive- /std:c++latest /Zc:__cplusplus /utf-8 /W4 /WX"
|
CXX_FLAGS: "/permissive- /std:c++latest /Zc:__cplusplus /utf-8 /F4000000 /W4 /WX"
|
||||||
|
LINKER_FLAGS: "/STACK:4000000"
|
||||||
CMAKE_OPTIONS: ""
|
CMAKE_OPTIONS: ""
|
||||||
GENERATOR: Visual Studio 15 2017
|
GENERATOR: Visual Studio 15 2017
|
||||||
|
|
||||||
@@ -63,7 +70,7 @@ before_build:
|
|||||||
# for with_win_header build, inject the inclusion of Windows.h to the single-header library
|
# for with_win_header build, inject the inclusion of Windows.h to the single-header library
|
||||||
- ps: if ($env:name -Eq "with_win_header") { $header_path = "single_include\nlohmann\json.hpp" }
|
- ps: if ($env:name -Eq "with_win_header") { $header_path = "single_include\nlohmann\json.hpp" }
|
||||||
- ps: if ($env:name -Eq "with_win_header") { "#include <Windows.h>`n" + (Get-Content $header_path | Out-String) | Set-Content $header_path }
|
- ps: if ($env:name -Eq "with_win_header") { "#include <Windows.h>`n" + (Get-Content $header_path | Out-String) | Set-Content $header_path }
|
||||||
- cmake . -G "%GENERATOR%" -A "%GENERATOR_PLATFORM%" -DCMAKE_CXX_FLAGS="%CXX_FLAGS%" -DCMAKE_IGNORE_PATH="C:/Program Files/Git/usr/bin" -DJSON_BuildTests=On "%CMAKE_OPTIONS%"
|
- cmake . -G "%GENERATOR%" -A "%GENERATOR_PLATFORM%" -DCMAKE_CXX_FLAGS="%CXX_FLAGS%" -DCMAKE_EXE_LINKER_FLAGS="%LINKER_FLAGS%" -DCMAKE_IGNORE_PATH="C:/Program Files/Git/usr/bin" -DJSON_BuildTests=On "%CMAKE_OPTIONS%"
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- cmake --build . --config "%configuration%"
|
- cmake --build . --config "%configuration%"
|
||||||
@@ -75,9 +82,3 @@ test_script:
|
|||||||
# occasional timeouts on AppVeyor.
|
# occasional timeouts on AppVeyor.
|
||||||
# More info: https://github.com/nlohmann/json/pull/1570
|
# More info: https://github.com/nlohmann/json/pull/1570
|
||||||
- if "%configuration%"=="Debug" ctest --exclude-regex "test-unicode" -C "%configuration%" -V -j
|
- if "%configuration%"=="Debug" ctest --exclude-regex "test-unicode" -C "%configuration%" -V -j
|
||||||
|
|
||||||
# only build PRs and commits to develop branch
|
|
||||||
# (see https://help.appveyor.com/discussions/questions/55079-two-builds-per-commit-to-pull-request)
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- develop
|
|
||||||
|
|||||||
+3
-5
@@ -13,7 +13,7 @@ execute_process(COMMAND ${ASTYLE_TOOL} --version OUTPUT_VARIABLE ASTYLE_TOOL_VER
|
|||||||
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" ASTYLE_TOOL_VERSION "${ASTYLE_TOOL_VERSION}")
|
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" ASTYLE_TOOL_VERSION "${ASTYLE_TOOL_VERSION}")
|
||||||
message(STATUS "🔖 Artistic Style ${ASTYLE_TOOL_VERSION} (${ASTYLE_TOOL})")
|
message(STATUS "🔖 Artistic Style ${ASTYLE_TOOL_VERSION} (${ASTYLE_TOOL})")
|
||||||
|
|
||||||
find_program(CLANG_TOOL NAMES clang++-HEAD clang++-13 clang++-12 clang++-11 clang++)
|
find_program(CLANG_TOOL NAMES clang++-HEAD clang++-12 clang++-11 clang++)
|
||||||
execute_process(COMMAND ${CLANG_TOOL} --version OUTPUT_VARIABLE CLANG_TOOL_VERSION ERROR_VARIABLE CLANG_TOOL_VERSION)
|
execute_process(COMMAND ${CLANG_TOOL} --version OUTPUT_VARIABLE CLANG_TOOL_VERSION ERROR_VARIABLE CLANG_TOOL_VERSION)
|
||||||
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" CLANG_TOOL_VERSION "${CLANG_TOOL_VERSION}")
|
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" CLANG_TOOL_VERSION "${CLANG_TOOL_VERSION}")
|
||||||
message(STATUS "🔖 Clang ${CLANG_TOOL_VERSION} (${CLANG_TOOL})")
|
message(STATUS "🔖 Clang ${CLANG_TOOL_VERSION} (${CLANG_TOOL})")
|
||||||
@@ -79,7 +79,7 @@ message(STATUS "🔖 Valgrind ${VALGRIND_TOOL_VERSION} (${VALGRIND_TOOL})")
|
|||||||
find_program(GENHTML_TOOL NAMES genhtml)
|
find_program(GENHTML_TOOL NAMES genhtml)
|
||||||
find_program(PLOG_CONVERTER_TOOL NAMES plog-converter)
|
find_program(PLOG_CONVERTER_TOOL NAMES plog-converter)
|
||||||
find_program(PVS_STUDIO_ANALYZER_TOOL NAMES pvs-studio-analyzer)
|
find_program(PVS_STUDIO_ANALYZER_TOOL NAMES pvs-studio-analyzer)
|
||||||
find_program(SCAN_BUILD_TOOL NAMES scan-build-12 scan-build-11 scan-build)
|
find_program(SCAN_BUILD_TOOL NAMES scan-build-11 scan-build)
|
||||||
|
|
||||||
# the individual source files
|
# the individual source files
|
||||||
file(GLOB_RECURSE SRC_FILES ${PROJECT_SOURCE_DIR}/include/nlohmann/*.hpp)
|
file(GLOB_RECURSE SRC_FILES ${PROJECT_SOURCE_DIR}/include/nlohmann/*.hpp)
|
||||||
@@ -96,7 +96,6 @@ file(GLOB_RECURSE SRC_FILES ${PROJECT_SOURCE_DIR}/include/nlohmann/*.hpp)
|
|||||||
# -Wno-padded We do not care about padding warnings.
|
# -Wno-padded We do not care about padding warnings.
|
||||||
# -Wno-covered-switch-default All switches list all cases and a default case.
|
# -Wno-covered-switch-default All switches list all cases and a default case.
|
||||||
# -Wno-weak-vtables The library is header-only.
|
# -Wno-weak-vtables The library is header-only.
|
||||||
# -Wreserved-identifier See https://github.com/onqtam/doctest/issues/536.
|
|
||||||
|
|
||||||
set(CLANG_CXXFLAGS "-std=c++11 \
|
set(CLANG_CXXFLAGS "-std=c++11 \
|
||||||
-Werror \
|
-Werror \
|
||||||
@@ -108,7 +107,6 @@ set(CLANG_CXXFLAGS "-std=c++11 \
|
|||||||
-Wno-padded \
|
-Wno-padded \
|
||||||
-Wno-covered-switch-default \
|
-Wno-covered-switch-default \
|
||||||
-Wno-weak-vtables \
|
-Wno-weak-vtables \
|
||||||
-Wno-reserved-identifier \
|
|
||||||
")
|
")
|
||||||
|
|
||||||
# Ignored GCC warnings:
|
# Ignored GCC warnings:
|
||||||
@@ -811,7 +809,7 @@ add_custom_target(ci_cmake_flags
|
|||||||
# Use more installed compilers.
|
# Use more installed compilers.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
foreach(COMPILER g++-4.8 g++-4.9 g++-5 g++-7 g++-8 g++-9 g++-10 clang++-3.5 clang++-3.6 clang++-3.7 clang++-3.8 clang++-3.9 clang++-4.0 clang++-5.0 clang++-6.0 clang++-7 clang++-8 clang++-9 clang++-10 clang++-11 clang++-12)
|
foreach(COMPILER g++-4.8 g++-4.9 g++-5 g++-7 g++-8 g++-9 g++-10 clang++-3.5 clang++-3.6 clang++-3.7 clang++-3.8 clang++-3.9 clang++-4.0 clang++-5.0 clang++-6.0 clang++-7 clang++-8 clang++-9 clang++-10 clang++-11)
|
||||||
find_program(COMPILER_TOOL NAMES ${COMPILER})
|
find_program(COMPILER_TOOL NAMES ${COMPILER})
|
||||||
if (COMPILER_TOOL)
|
if (COMPILER_TOOL)
|
||||||
add_custom_target(ci_test_compiler_${COMPILER}
|
add_custom_target(ci_test_compiler_${COMPILER}
|
||||||
|
|||||||
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
DOXYFILE_ENCODING = UTF-8
|
DOXYFILE_ENCODING = UTF-8
|
||||||
PROJECT_NAME = "JSON for Modern C++"
|
PROJECT_NAME = "JSON for Modern C++"
|
||||||
PROJECT_NUMBER = 3.10.3
|
PROJECT_NUMBER = 3.10.0
|
||||||
PROJECT_BRIEF =
|
PROJECT_BRIEF =
|
||||||
PROJECT_LOGO =
|
PROJECT_LOGO =
|
||||||
OUTPUT_DIRECTORY = .
|
OUTPUT_DIRECTORY = .
|
||||||
@@ -252,7 +252,7 @@ MAN_LINKS = NO
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the XML output
|
# Configuration options related to the XML output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_XML = NO
|
GENERATE_XML = YES
|
||||||
XML_OUTPUT = xml
|
XML_OUTPUT = xml
|
||||||
XML_PROGRAMLISTING = YES
|
XML_PROGRAMLISTING = YES
|
||||||
XML_NS_MEMB_FILE_SCOPE = NO
|
XML_NS_MEMB_FILE_SCOPE = NO
|
||||||
|
|||||||
+21
-1
@@ -43,7 +43,7 @@ check_output: $(EXAMPLES:.cpp=.test)
|
|||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -fr me.nlohmann.json.docset html $(EXAMPLES:.cpp=)
|
rm -fr me.nlohmann.json.docset html xml $(EXAMPLES:.cpp=)
|
||||||
$(MAKE) clean -C docset
|
$(MAKE) clean -C docset
|
||||||
$(MAKE) clean -C mkdocs
|
$(MAKE) clean -C mkdocs
|
||||||
|
|
||||||
@@ -70,3 +70,23 @@ upload: clean doxygen check_output
|
|||||||
scripts/git-update-ghpages nlohmann/json html
|
scripts/git-update-ghpages nlohmann/json html
|
||||||
rm -fr html
|
rm -fr html
|
||||||
open http://nlohmann.github.io/json/
|
open http://nlohmann.github.io/json/
|
||||||
|
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# docset
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
# create docset for Dash
|
||||||
|
docset: create_output
|
||||||
|
cp Doxyfile Doxyfile_docset
|
||||||
|
$(SED) -i 's/DISABLE_INDEX = NO/DISABLE_INDEX = YES/' Doxyfile_docset
|
||||||
|
$(SED) -i 's/SEARCHENGINE = YES/SEARCHENGINE = NO/' Doxyfile_docset
|
||||||
|
$(SED) -i 's@HTML_EXTRA_STYLESHEET = css/mylayout.css@HTML_EXTRA_STYLESHEET = css/mylayout_docset.css@' Doxyfile_docset
|
||||||
|
rm -fr html *.docset
|
||||||
|
doxygen Doxyfile_docset
|
||||||
|
$(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html
|
||||||
|
$(SED) -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html
|
||||||
|
make -C html
|
||||||
|
mv html/*.docset .
|
||||||
|
$(SED) -i 's@<string>doxygen</string>@<string>json</string>@' me.nlohmann.json.docset/Contents/Info.plist
|
||||||
|
rm -fr Doxyfile_docset html
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
+11
-15
@@ -1,25 +1,21 @@
|
|||||||
JSON_for_Modern_C++.docset: Info.plist docSet.sql
|
nlohmann_json.docset: Info.plist docSet.sql
|
||||||
$(MAKE) clean
|
$(MAKE) clean
|
||||||
mkdir -p JSON_for_Modern_C++.docset/Contents/Resources/Documents/
|
mkdir -p nlohmann_json.docset/Contents/Resources/Documents/
|
||||||
cp icon*.png JSON_for_Modern_C++.docset
|
cp info.plist nlohmann_json.docset/Contents
|
||||||
cp Info.plist JSON_for_Modern_C++.docset/Contents
|
|
||||||
# build and copy documentation
|
# build and copy documentation
|
||||||
$(MAKE) build -C ../mkdocs
|
$(MAKE) build -C ../mkdocs
|
||||||
cp -r ../mkdocs/site/* JSON_for_Modern_C++.docset/Contents/Resources/Documents
|
cp -r ../mkdocs/site/* nlohmann_json.docset/Contents/Resources/Documents
|
||||||
# patch CSS to hide navigation items
|
# patch CSS to hide navigation items
|
||||||
echo "\n\nheader, footer, navi, div.md-sidebar--primary, nav.md-tabs--active, a.md-content__button { display: none; }" >> "$$(ls JSON_for_Modern_C++.docset/Contents/Resources/Documents/assets/stylesheets/main.*.min.css)"
|
echo "\n\nheader, footer, navi, div.md-sidebar--primary, nav.md-tabs--active, a.md-content__button { display: none; }" >> nlohmann_json.docset/Contents/Resources/Documents/assets/stylesheets/main.b5d04df8.min.css
|
||||||
# fix spacing
|
# fix spacing
|
||||||
echo "\n\ndiv.md-sidebar div.md-sidebar--secondary, div.md-main__inner { top: 0; margin-top: 0 }" >> "$$(ls JSON_for_Modern_C++.docset/Contents/Resources/Documents/assets/stylesheets/main.*.min.css)"
|
echo "\n\ndiv.md-sidebar div.md-sidebar--secondary, div.md-main__inner { top: 0; margin-top: 0 }" >> nlohmann_json.docset/Contents/Resources/Documents/assets/stylesheets/main.b5d04df8.min.css
|
||||||
# remove "JSON for Modern C++" from page titles
|
# remove "JSON for Modern C++" from page titles
|
||||||
find JSON_for_Modern_C++.docset/Contents/Resources/Documents -type f -exec gsed -i 's| - JSON for Modern C++</title>|</title>|' {} +
|
find nlohmann_json.docset/Contents/Resources/Documents -type f -exec gsed -i 's| - JSON for Modern C++</title>|</title>|' {} +
|
||||||
# clean up
|
# clean up
|
||||||
rm JSON_for_Modern_C++.docset/Contents/Resources/Documents/hooks.py
|
rm nlohmann_json.docset/Contents/Resources/Documents/hooks.py
|
||||||
rm JSON_for_Modern_C++.docset/Contents/Resources/Documents/sitemap.*
|
rm nlohmann_json.docset/Contents/Resources/Documents/sitemap.*
|
||||||
# generate index
|
# generate index
|
||||||
sqlite3 JSON_for_Modern_C++.docset/Contents/Resources/docSet.dsidx < docSet.sql
|
sqlite3 nlohmann_json.docset/Contents/Resources/docSet.dsidx < docSet.sql
|
||||||
|
|
||||||
JSON_for_Modern_C++.tgz: JSON_for_Modern_C++.docset
|
|
||||||
tar --exclude='.DS_Store' -cvzf JSON_for_Modern_C++.tgz JSON_for_Modern_C++.docset
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -fr JSON_for_Modern_C++.docset JSON_for_Modern_C++.tgz
|
rm -fr nlohmann_json.docset
|
||||||
|
|||||||
@@ -11,9 +11,3 @@ make nlohmann_json.docset
|
|||||||
```
|
```
|
||||||
|
|
||||||
The generated folder `nlohmann_json.docset` can then be opened in the documentation browser.
|
The generated folder `nlohmann_json.docset` can then be opened in the documentation browser.
|
||||||
|
|
||||||
A recent version is also part of the [Dash user contributions](https://github.com/Kapeli/Dash-User-Contributions/tree/master/docsets/JSON_for_Modern_C%2B%2B).
|
|
||||||
|
|
||||||
## Licenses
|
|
||||||
|
|
||||||
The [JSON logo](https://commons.wikimedia.org/wiki/File:JSON_vector_logo.svg) is public domain.
|
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "JSON for Modern C++",
|
|
||||||
"version": "3.10.0",
|
|
||||||
"archive": "JSON_for_Modern_C++.tgz",
|
|
||||||
"author": {
|
|
||||||
"name": "Niels Lohmann",
|
|
||||||
"link": "https://twitter.com/nlohmann"
|
|
||||||
},
|
|
||||||
"aliases": ["nlohmann/json"]
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 700 B |
Binary file not shown.
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1 +1 @@
|
|||||||
<a target="_blank" href="https://wandbox.org/permlink/0LzTlmYG06u8qJN5"><b>online</b></a>
|
<a target="_blank" href="https://wandbox.org/permlink/IYGZTTRU0q5Ty1ev"><b>online</b></a>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"compiler": {
|
"compiler": {
|
||||||
"c++": "201103",
|
"c++": "201103",
|
||||||
"family": "clang",
|
"family": "clang",
|
||||||
"version": "13.0.0 (clang-1300.0.29.3)"
|
"version": "12.0.5 (clang-1205.0.22.11)"
|
||||||
},
|
},
|
||||||
"copyright": "(C) 2013-2021 Niels Lohmann",
|
"copyright": "(C) 2013-2021 Niels Lohmann",
|
||||||
"name": "JSON for Modern C++",
|
"name": "JSON for Modern C++",
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
"version": {
|
"version": {
|
||||||
"major": 3,
|
"major": 3,
|
||||||
"minor": 10,
|
"minor": 10,
|
||||||
"patch": 3,
|
"patch": 0,
|
||||||
"string": "3.10.3"
|
"string": "3.10.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -332,4 +332,4 @@ Note that this table only lists those exceptions thrown due to the type. For ins
|
|||||||
@author [Niels Lohmann](http://nlohmann.me)
|
@author [Niels Lohmann](http://nlohmann.me)
|
||||||
@see https://github.com/nlohmann/json to download the source code
|
@see https://github.com/nlohmann/json to download the source code
|
||||||
|
|
||||||
@version 3.10.3
|
@version 3.10.0
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
@@ -79,7 +79,7 @@ super-linear complexity.
|
|||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
??? example "Parsing from a character array"
|
??? example "Parsing from a charater array"
|
||||||
|
|
||||||
The example below demonstrates the `parse()` function reading from an array.
|
The example below demonstrates the `parse()` function reading from an array.
|
||||||
|
|
||||||
|
|||||||
@@ -11,16 +11,18 @@ Throughout this page, we will describe how to compile the example file `example.
|
|||||||
If you are using OS X and [Homebrew](http://brew.sh), just type
|
If you are using OS X and [Homebrew](http://brew.sh), just type
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
brew tap nlohmann/json
|
||||||
brew install nlohmann-json
|
brew install nlohmann-json
|
||||||
```
|
```
|
||||||
|
|
||||||
and you're set. If you want the bleeding edge rather than the latest release, use
|
and you're set. If you want the bleeding edge rather than the latest release, use
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
brew tap nlohmann/json
|
||||||
brew install nlohmann-json --HEAD
|
brew install nlohmann-json --HEAD
|
||||||
```
|
```
|
||||||
|
|
||||||
instead. See [nlohmann-json](https://formulae.brew.sh/formula/nlohmann-json) for more information.
|
instead.
|
||||||
|
|
||||||
??? example
|
??? example
|
||||||
|
|
||||||
@@ -35,6 +37,7 @@ instead. See [nlohmann-json](https://formulae.brew.sh/formula/nlohmann-json) for
|
|||||||
2. Install the package
|
2. Install the package
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
brew tap nlohmann/json
|
||||||
brew install nlohmann-json
|
brew install nlohmann-json
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -107,40 +110,7 @@ If you are using [Buckaroo](https://buckaroo.pm), you can install this library's
|
|||||||
|
|
||||||
## vcpkg
|
## vcpkg
|
||||||
|
|
||||||
If you are using [vcpkg](https://github.com/Microsoft/vcpkg/) on your project for external dependencies, then you can install the [nlohmann-json package](https://github.com/Microsoft/vcpkg/tree/master/ports/nlohmann-json) with `vcpkg install nlohmann-json` and follow the then displayed descriptions. Please see the vcpkg project for any issues regarding the packaging.
|
If you are using [vcpkg](https://github.com/Microsoft/vcpkg/) on your project for external dependencies, then you can use the [nlohmann-json package](https://github.com/Microsoft/vcpkg/tree/master/ports/nlohmann-json). Please see the vcpkg project for any issues regarding the packaging.
|
||||||
|
|
||||||
??? example
|
|
||||||
|
|
||||||
1. Create the following files:
|
|
||||||
|
|
||||||
=== "CMakeLists.txt"
|
|
||||||
|
|
||||||
```cmake
|
|
||||||
--8<-- "integration/vcpkg/CMakeLists.txt"
|
|
||||||
```
|
|
||||||
|
|
||||||
=== "example.cpp"
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
--8<-- "integration/vcpkg/example.cpp"
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Install package:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
vcpkg install nlohmann-json
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Build:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
|
|
||||||
cmake --build .
|
|
||||||
```
|
|
||||||
|
|
||||||
Note you need to adjust `/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake` to your system.
|
|
||||||
|
|
||||||
## cget
|
## cget
|
||||||
|
|
||||||
@@ -160,11 +130,7 @@ If you are using [conda](https://conda.io/), you can use the package [nlohmann_j
|
|||||||
|
|
||||||
## MSYS2
|
## MSYS2
|
||||||
|
|
||||||
If you are using [MSYS2](http://www.msys2.org/), you can use the [mingw-w64-nlohmann-json](https://packages.msys2.org/base/mingw-w64-nlohmann-json) package, just type `pacman -S mingw-w64-i686-nlohmann-json` or `pacman -S mingw-w64-x86_64-nlohmann-json` for installation. Please file issues [here](https://github.com/msys2/MINGW-packages/issues/new?title=%5Bnlohmann-json%5D) if you experience problems with the packages.
|
If you are using [MSYS2](http://www.msys2.org/), your can use the [mingw-w64-nlohmann-json](https://packages.msys2.org/base/mingw-w64-nlohmann-json) package, just type `pacman -S mingw-w64-i686-nlohmann-json` or `pacman -S mingw-w64-x86_64-nlohmann-json` for installation. Please file issues [here](https://github.com/msys2/MINGW-packages/issues/new?title=%5Bnlohmann-json%5D) if you experience problems with the packages.
|
||||||
|
|
||||||
## MacPorts
|
|
||||||
|
|
||||||
If you are using [MacPorts](https://ports.macports.org), execute `sudo port install nlohmann-json` to install the [nlohmann-json](https://ports.macports.org/port/nlohmann-json/) package.
|
|
||||||
|
|
||||||
## build2
|
## build2
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
project(json_example)
|
|
||||||
cmake_minimum_required(VERSION 2.8.12)
|
|
||||||
|
|
||||||
find_package(nlohmann_json CONFIG REQUIRED)
|
|
||||||
|
|
||||||
add_executable(json_example example.cpp)
|
|
||||||
target_link_libraries(json_example PRIVATE nlohmann_json::nlohmann_json)
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#include <nlohmann/json.hpp>
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using json = nlohmann::json;
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
std::cout << json::meta() << std::endl;
|
|
||||||
}
|
|
||||||
@@ -94,7 +94,7 @@ struct external_constructor<value_t::binary>
|
|||||||
{
|
{
|
||||||
j.m_value.destroy(j.m_type);
|
j.m_value.destroy(j.m_type);
|
||||||
j.m_type = value_t::binary;
|
j.m_type = value_t::binary;
|
||||||
j.m_value = typename BasicJsonType::binary_t(std::move(b));
|
j.m_value = typename BasicJsonType::binary_t(std::move(b));;
|
||||||
j.assert_invariant();
|
j.assert_invariant();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
#include <functional> // hash
|
#include <functional> // hash
|
||||||
|
|
||||||
#include <nlohmann/detail/macro_scope.hpp>
|
#include <nlohmann/detail/macro_scope.hpp>
|
||||||
#include <nlohmann/detail/value_t.hpp>
|
|
||||||
|
|
||||||
namespace nlohmann
|
namespace nlohmann
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <utility> // declval, pair
|
#include <utility> // pair
|
||||||
#include <nlohmann/thirdparty/hedley/hedley.hpp>
|
#include <nlohmann/thirdparty/hedley/hedley.hpp>
|
||||||
#include <nlohmann/detail/meta/detected.hpp>
|
|
||||||
|
|
||||||
// This file contains all internal macro definitions
|
// This file contains all internal macro definitions
|
||||||
// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them
|
// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them
|
||||||
@@ -293,45 +292,6 @@
|
|||||||
inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
|
inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
|
||||||
inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }
|
inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }
|
||||||
|
|
||||||
|
|
||||||
// inspired from https://stackoverflow.com/a/26745591
|
|
||||||
// allows to call any std function as if (e.g. with begin):
|
|
||||||
// using std::begin; begin(x);
|
|
||||||
//
|
|
||||||
// it allows using the detected idiom to retrieve the return type
|
|
||||||
// of such an expression
|
|
||||||
#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name) \
|
|
||||||
namespace detail { \
|
|
||||||
using std::std_name; \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
using result_of_##std_name = decltype(std_name(std::declval<T>()...)); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
namespace detail2 { \
|
|
||||||
struct std_name##_tag \
|
|
||||||
{ \
|
|
||||||
}; \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
std_name##_tag std_name(T&&...); \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
using result_of_##std_name = decltype(std_name(std::declval<T>()...)); \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
struct would_call_std_##std_name \
|
|
||||||
{ \
|
|
||||||
static constexpr auto const value = ::nlohmann::detail:: \
|
|
||||||
is_detected_exact<std_name##_tag, result_of_##std_name, T...>::value; \
|
|
||||||
}; \
|
|
||||||
} /* namespace detail2 */ \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
struct would_call_std_##std_name : detail2::would_call_std_##std_name<T...> \
|
|
||||||
{ \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef JSON_USE_IMPLICIT_CONVERSIONS
|
#ifndef JSON_USE_IMPLICIT_CONVERSIONS
|
||||||
#define JSON_USE_IMPLICIT_CONVERSIONS 1
|
#define JSON_USE_IMPLICIT_CONVERSIONS 1
|
||||||
#endif
|
#endif
|
||||||
@@ -341,7 +301,3 @@
|
|||||||
#else
|
#else
|
||||||
#define JSON_EXPLICIT explicit
|
#define JSON_EXPLICIT explicit
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef JSON_DIAGNOSTICS
|
|
||||||
#define JSON_DIAGNOSTICS 0
|
|
||||||
#endif
|
|
||||||
|
|||||||
@@ -19,6 +19,5 @@
|
|||||||
#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION
|
#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION
|
||||||
#undef NLOHMANN_BASIC_JSON_TPL
|
#undef NLOHMANN_BASIC_JSON_TPL
|
||||||
#undef JSON_EXPLICIT
|
#undef JSON_EXPLICIT
|
||||||
#undef NLOHMANN_CAN_CALL_STD_FUNC_IMPL
|
|
||||||
|
|
||||||
#include <nlohmann/thirdparty/hedley/hedley_undef.hpp>
|
#include <nlohmann/thirdparty/hedley/hedley_undef.hpp>
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <nlohmann/detail/macro_scope.hpp>
|
|
||||||
|
|
||||||
namespace nlohmann
|
|
||||||
{
|
|
||||||
NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin);
|
|
||||||
} // namespace nlohmann
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <nlohmann/detail/macro_scope.hpp>
|
|
||||||
|
|
||||||
namespace nlohmann
|
|
||||||
{
|
|
||||||
NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end);
|
|
||||||
} // namespace nlohmann
|
|
||||||
@@ -5,11 +5,8 @@
|
|||||||
#include <utility> // declval
|
#include <utility> // declval
|
||||||
#include <tuple> // tuple
|
#include <tuple> // tuple
|
||||||
|
|
||||||
#include <nlohmann/detail/macro_scope.hpp>
|
|
||||||
|
|
||||||
#include <nlohmann/detail/iterators/iterator_traits.hpp>
|
#include <nlohmann/detail/iterators/iterator_traits.hpp>
|
||||||
#include <nlohmann/detail/meta/call_std/begin.hpp>
|
#include <nlohmann/detail/macro_scope.hpp>
|
||||||
#include <nlohmann/detail/meta/call_std/end.hpp>
|
|
||||||
#include <nlohmann/detail/meta/cpp_future.hpp>
|
#include <nlohmann/detail/meta/cpp_future.hpp>
|
||||||
#include <nlohmann/detail/meta/detected.hpp>
|
#include <nlohmann/detail/meta/detected.hpp>
|
||||||
#include <nlohmann/json_fwd.hpp>
|
#include <nlohmann/json_fwd.hpp>
|
||||||
@@ -82,6 +79,9 @@ using reference_t = typename T::reference;
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
using iterator_category_t = typename T::iterator_category;
|
using iterator_category_t = typename T::iterator_category;
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
using iterator_t = typename T::iterator;
|
||||||
|
|
||||||
template<typename T, typename... Args>
|
template<typename T, typename... Args>
|
||||||
using to_json_function = decltype(T::to_json(std::declval<Args>()...));
|
using to_json_function = decltype(T::to_json(std::declval<Args>()...));
|
||||||
|
|
||||||
@@ -217,31 +217,6 @@ struct is_iterator_traits<iterator_traits<T>>
|
|||||||
is_detected<reference_t, traits>::value;
|
is_detected<reference_t, traits>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
struct is_range
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
using t_ref = typename std::add_lvalue_reference<T>::type;
|
|
||||||
|
|
||||||
using iterator = detected_t<result_of_begin, t_ref>;
|
|
||||||
using sentinel = detected_t<result_of_end, t_ref>;
|
|
||||||
|
|
||||||
// to be 100% correct, it should use https://en.cppreference.com/w/cpp/iterator/input_or_output_iterator
|
|
||||||
// and https://en.cppreference.com/w/cpp/iterator/sentinel_for
|
|
||||||
// but reimplementing these would be too much work, as a lot of other concepts are used underneath
|
|
||||||
static constexpr auto is_iterator_begin =
|
|
||||||
is_iterator_traits<iterator_traits<iterator>>::value;
|
|
||||||
|
|
||||||
public:
|
|
||||||
static constexpr bool value = !std::is_same<iterator, nonesuch>::value && !std::is_same<sentinel, nonesuch>::value && is_iterator_begin;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<typename R>
|
|
||||||
using iterator_t = enable_if_t<is_range<R>::value, result_of_begin<decltype(std::declval<R&>())>>;
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
using range_value_t = value_type_t<iterator_traits<iterator_t<T>>>;
|
|
||||||
|
|
||||||
// The following implementation of is_complete_type is taken from
|
// The following implementation of is_complete_type is taken from
|
||||||
// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/
|
// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/
|
||||||
// and is written by Xiang Fan who agreed to using it in this library.
|
// and is written by Xiang Fan who agreed to using it in this library.
|
||||||
@@ -316,9 +291,8 @@ struct is_compatible_string_type_impl : std::false_type {};
|
|||||||
template<typename BasicJsonType, typename CompatibleStringType>
|
template<typename BasicJsonType, typename CompatibleStringType>
|
||||||
struct is_compatible_string_type_impl <
|
struct is_compatible_string_type_impl <
|
||||||
BasicJsonType, CompatibleStringType,
|
BasicJsonType, CompatibleStringType,
|
||||||
enable_if_t<is_detected_convertible<typename BasicJsonType::string_t::value_type,
|
enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,
|
||||||
range_value_t,
|
value_type_t, CompatibleStringType>::value >>
|
||||||
CompatibleStringType>::value >>
|
|
||||||
{
|
{
|
||||||
static constexpr auto value =
|
static constexpr auto value =
|
||||||
is_constructible<typename BasicJsonType::string_t, CompatibleStringType>::value;
|
is_constructible<typename BasicJsonType::string_t, CompatibleStringType>::value;
|
||||||
@@ -353,13 +327,17 @@ struct is_compatible_array_type_impl : std::false_type {};
|
|||||||
template<typename BasicJsonType, typename CompatibleArrayType>
|
template<typename BasicJsonType, typename CompatibleArrayType>
|
||||||
struct is_compatible_array_type_impl <
|
struct is_compatible_array_type_impl <
|
||||||
BasicJsonType, CompatibleArrayType,
|
BasicJsonType, CompatibleArrayType,
|
||||||
enable_if_t <
|
enable_if_t < is_detected<value_type_t, CompatibleArrayType>::value&&
|
||||||
is_detected<iterator_t, CompatibleArrayType>::value&&
|
is_detected<iterator_t, CompatibleArrayType>::value&&
|
||||||
is_iterator_traits<iterator_traits<detected_t<iterator_t, CompatibleArrayType>>>::value >>
|
// This is needed because json_reverse_iterator has a ::iterator type...
|
||||||
|
// Therefore it is detected as a CompatibleArrayType.
|
||||||
|
// The real fix would be to have an Iterable concept.
|
||||||
|
!is_iterator_traits <
|
||||||
|
iterator_traits<CompatibleArrayType >>::value >>
|
||||||
{
|
{
|
||||||
static constexpr bool value =
|
static constexpr bool value =
|
||||||
is_constructible<BasicJsonType,
|
is_constructible<BasicJsonType,
|
||||||
range_value_t<CompatibleArrayType>>::value;
|
typename CompatibleArrayType::value_type>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename BasicJsonType, typename CompatibleArrayType>
|
template<typename BasicJsonType, typename CompatibleArrayType>
|
||||||
@@ -381,26 +359,28 @@ struct is_constructible_array_type_impl <
|
|||||||
BasicJsonType, ConstructibleArrayType,
|
BasicJsonType, ConstructibleArrayType,
|
||||||
enable_if_t < !std::is_same<ConstructibleArrayType,
|
enable_if_t < !std::is_same<ConstructibleArrayType,
|
||||||
typename BasicJsonType::value_type>::value&&
|
typename BasicJsonType::value_type>::value&&
|
||||||
!is_compatible_string_type<BasicJsonType, ConstructibleArrayType>::value&&
|
|
||||||
is_default_constructible<ConstructibleArrayType>::value&&
|
is_default_constructible<ConstructibleArrayType>::value&&
|
||||||
(std::is_move_assignable<ConstructibleArrayType>::value ||
|
(std::is_move_assignable<ConstructibleArrayType>::value ||
|
||||||
std::is_copy_assignable<ConstructibleArrayType>::value)&&
|
std::is_copy_assignable<ConstructibleArrayType>::value)&&
|
||||||
|
is_detected<value_type_t, ConstructibleArrayType>::value&&
|
||||||
is_detected<iterator_t, ConstructibleArrayType>::value&&
|
is_detected<iterator_t, ConstructibleArrayType>::value&&
|
||||||
is_iterator_traits<iterator_traits<detected_t<iterator_t, ConstructibleArrayType>>>::value&&
|
|
||||||
is_detected<range_value_t, ConstructibleArrayType>::value&&
|
|
||||||
is_complete_type <
|
is_complete_type <
|
||||||
detected_t<range_value_t, ConstructibleArrayType >>::value >>
|
detected_t<value_type_t, ConstructibleArrayType >>::value >>
|
||||||
{
|
{
|
||||||
using value_type = range_value_t<ConstructibleArrayType>;
|
|
||||||
|
|
||||||
static constexpr bool value =
|
static constexpr bool value =
|
||||||
std::is_same<value_type,
|
// This is needed because json_reverse_iterator has a ::iterator type,
|
||||||
typename BasicJsonType::array_t::value_type>::value ||
|
// furthermore, std::back_insert_iterator (and other iterators) have a
|
||||||
has_from_json<BasicJsonType,
|
// base class `iterator`... Therefore it is detected as a
|
||||||
value_type>::value ||
|
// ConstructibleArrayType. The real fix would be to have an Iterable
|
||||||
has_non_default_from_json <
|
// concept.
|
||||||
BasicJsonType,
|
!is_iterator_traits<iterator_traits<ConstructibleArrayType>>::value &&
|
||||||
value_type >::value;
|
|
||||||
|
(std::is_same<typename ConstructibleArrayType::value_type,
|
||||||
|
typename BasicJsonType::array_t::value_type>::value ||
|
||||||
|
has_from_json<BasicJsonType,
|
||||||
|
typename ConstructibleArrayType::value_type>::value ||
|
||||||
|
has_non_default_from_json <
|
||||||
|
BasicJsonType, typename ConstructibleArrayType::value_type >::value);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename BasicJsonType, typename ConstructibleArrayType>
|
template<typename BasicJsonType, typename ConstructibleArrayType>
|
||||||
@@ -456,24 +436,6 @@ struct is_constructible_tuple : std::false_type {};
|
|||||||
template<typename T1, typename... Args>
|
template<typename T1, typename... Args>
|
||||||
struct is_constructible_tuple<T1, std::tuple<Args...>> : conjunction<is_constructible<T1, Args>...> {};
|
struct is_constructible_tuple<T1, std::tuple<Args...>> : conjunction<is_constructible<T1, Args>...> {};
|
||||||
|
|
||||||
// a naive helper to check if a type is an ordered_map (exploits the fact that
|
|
||||||
// ordered_map inherits capacity() from std::vector)
|
|
||||||
template <typename T>
|
|
||||||
struct is_ordered_map
|
|
||||||
{
|
|
||||||
using one = char;
|
|
||||||
|
|
||||||
struct two
|
|
||||||
{
|
|
||||||
char x[2]; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename C> static one test( decltype(&C::capacity) ) ;
|
|
||||||
template <typename C> static two test(...);
|
|
||||||
|
|
||||||
enum { value = sizeof(test<T>(nullptr)) == sizeof(char) }; // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg)
|
|
||||||
};
|
|
||||||
|
|
||||||
// to avoid useless casts (see https://github.com/nlohmann/json/issues/2893#issuecomment-889152324)
|
// to avoid useless casts (see https://github.com/nlohmann/json/issues/2893#issuecomment-889152324)
|
||||||
template < typename T, typename U, enable_if_t < !std::is_same<T, U>::value, int > = 0 >
|
template < typename T, typename U, enable_if_t < !std::is_same<T, U>::value, int > = 0 >
|
||||||
T conditional_static_cast(U value)
|
T conditional_static_cast(U value)
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class binary_writer
|
|||||||
case value_t::discarded:
|
case value_t::discarded:
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
JSON_THROW(type_error::create(317, "to serialize to BSON, top-level type must be object, but is " + std::string(j.type_name()), j));
|
JSON_THROW(type_error::create(317, "to serialize to BSON, top-level type must be object, but is " + std::string(j.type_name()), j));;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,11 +37,11 @@ template<typename CharType>
|
|||||||
using output_adapter_t = std::shared_ptr<output_adapter_protocol<CharType>>;
|
using output_adapter_t = std::shared_ptr<output_adapter_protocol<CharType>>;
|
||||||
|
|
||||||
/// output adapter for byte vectors
|
/// output adapter for byte vectors
|
||||||
template<typename CharType, typename AllocatorType = std::allocator<CharType>>
|
template<typename CharType>
|
||||||
class output_vector_adapter : public output_adapter_protocol<CharType>
|
class output_vector_adapter : public output_adapter_protocol<CharType>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit output_vector_adapter(std::vector<CharType, AllocatorType>& vec) noexcept
|
explicit output_vector_adapter(std::vector<CharType>& vec) noexcept
|
||||||
: v(vec)
|
: v(vec)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ class output_vector_adapter : public output_adapter_protocol<CharType>
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<CharType, AllocatorType>& v;
|
std::vector<CharType>& v;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef JSON_NO_IO
|
#ifndef JSON_NO_IO
|
||||||
@@ -114,9 +114,8 @@ template<typename CharType, typename StringType = std::basic_string<CharType>>
|
|||||||
class output_adapter
|
class output_adapter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
template<typename AllocatorType = std::allocator<CharType>>
|
output_adapter(std::vector<CharType>& vec)
|
||||||
output_adapter(std::vector<CharType, AllocatorType>& vec)
|
: oa(std::make_shared<output_vector_adapter<CharType>>(vec)) {}
|
||||||
: oa(std::make_shared<output_vector_adapter<CharType, AllocatorType>>(vec)) {}
|
|
||||||
|
|
||||||
#ifndef JSON_NO_IO
|
#ifndef JSON_NO_IO
|
||||||
output_adapter(std::basic_ostream<CharType>& s)
|
output_adapter(std::basic_ostream<CharType>& s)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++
|
__| | __| | | | JSON for Modern C++
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
@@ -32,7 +32,7 @@ SOFTWARE.
|
|||||||
|
|
||||||
#define NLOHMANN_JSON_VERSION_MAJOR 3
|
#define NLOHMANN_JSON_VERSION_MAJOR 3
|
||||||
#define NLOHMANN_JSON_VERSION_MINOR 10
|
#define NLOHMANN_JSON_VERSION_MINOR 10
|
||||||
#define NLOHMANN_JSON_VERSION_PATCH 3
|
#define NLOHMANN_JSON_VERSION_PATCH 0
|
||||||
|
|
||||||
#include <algorithm> // all_of, find, for_each
|
#include <algorithm> // all_of, find, for_each
|
||||||
#include <cstddef> // nullptr_t, ptrdiff_t, size_t
|
#include <cstddef> // nullptr_t, ptrdiff_t, size_t
|
||||||
@@ -1065,7 +1065,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
object = nullptr; // silence warning, see #821
|
object = nullptr; // silence warning, see #821
|
||||||
if (JSON_HEDLEY_UNLIKELY(t == value_t::null))
|
if (JSON_HEDLEY_UNLIKELY(t == value_t::null))
|
||||||
{
|
{
|
||||||
JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.10.3", basic_json())); // LCOV_EXCL_LINE
|
JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.10.0", basic_json())); // LCOV_EXCL_LINE
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1336,21 +1336,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ordered_json uses a vector internally, so pointers could have
|
|
||||||
// been invalidated; see https://github.com/nlohmann/json/issues/2962
|
|
||||||
#ifdef JSON_HEDLEY_MSVC_VERSION
|
|
||||||
#pragma warning(push )
|
|
||||||
#pragma warning(disable : 4127) // ignore warning to replace if with if constexpr
|
|
||||||
#endif
|
|
||||||
if (detail::is_ordered_map<object_t>::value)
|
|
||||||
{
|
|
||||||
set_parents();
|
|
||||||
return j;
|
|
||||||
}
|
|
||||||
#ifdef JSON_HEDLEY_MSVC_VERSION
|
|
||||||
#pragma warning( pop )
|
|
||||||
#endif
|
|
||||||
|
|
||||||
j.m_parent = this;
|
j.m_parent = this;
|
||||||
#else
|
#else
|
||||||
static_cast<void>(j);
|
static_cast<void>(j);
|
||||||
@@ -3695,25 +3680,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
if (idx >= m_value.array->size())
|
if (idx >= m_value.array->size())
|
||||||
{
|
{
|
||||||
#if JSON_DIAGNOSTICS
|
#if JSON_DIAGNOSTICS
|
||||||
// remember array size & capacity before resizing
|
// remember array size before resizing
|
||||||
const auto old_size = m_value.array->size();
|
const auto previous_size = m_value.array->size();
|
||||||
const auto old_capacity = m_value.array->capacity();
|
|
||||||
#endif
|
#endif
|
||||||
m_value.array->resize(idx + 1);
|
m_value.array->resize(idx + 1);
|
||||||
|
|
||||||
#if JSON_DIAGNOSTICS
|
#if JSON_DIAGNOSTICS
|
||||||
if (JSON_HEDLEY_UNLIKELY(m_value.array->capacity() != old_capacity))
|
// set parent for values added above
|
||||||
{
|
set_parents(begin() + static_cast<typename iterator::difference_type>(previous_size), static_cast<typename iterator::difference_type>(idx + 1 - previous_size));
|
||||||
// capacity has changed: update all parents
|
|
||||||
set_parents();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// set parent for values added above
|
|
||||||
set_parents(begin() + static_cast<typename iterator::difference_type>(old_size), static_cast<typename iterator::difference_type>(idx + 1 - old_size));
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
assert_invariant();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_value.array->operator[](idx);
|
return m_value.array->operator[](idx);
|
||||||
@@ -6019,9 +5994,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
for (auto it = j.cbegin(); it != j.cend(); ++it)
|
for (auto it = j.cbegin(); it != j.cend(); ++it)
|
||||||
{
|
{
|
||||||
m_value.object->operator[](it.key()) = it.value();
|
m_value.object->operator[](it.key()) = it.value();
|
||||||
#if JSON_DIAGNOSTICS
|
|
||||||
m_value.object->operator[](it.key()).m_parent = this;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6082,9 +6054,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
for (auto it = first; it != last; ++it)
|
for (auto it = first; it != last; ++it)
|
||||||
{
|
{
|
||||||
m_value.object->operator[](it.key()) = it.value();
|
m_value.object->operator[](it.key()) = it.value();
|
||||||
#if JSON_DIAGNOSTICS
|
|
||||||
m_value.object->operator[](it.key()).m_parent = this;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
project('nlohmann_json',
|
project('nlohmann_json',
|
||||||
'cpp',
|
'cpp',
|
||||||
version : '3.10.3',
|
version : '3.10.0',
|
||||||
license : 'MIT',
|
license : 'MIT',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+117
-255
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++
|
__| | __| | | | JSON for Modern C++
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
@@ -32,7 +32,7 @@ SOFTWARE.
|
|||||||
|
|
||||||
#define NLOHMANN_JSON_VERSION_MAJOR 3
|
#define NLOHMANN_JSON_VERSION_MAJOR 3
|
||||||
#define NLOHMANN_JSON_VERSION_MINOR 10
|
#define NLOHMANN_JSON_VERSION_MINOR 10
|
||||||
#define NLOHMANN_JSON_VERSION_PATCH 3
|
#define NLOHMANN_JSON_VERSION_PATCH 0
|
||||||
|
|
||||||
#include <algorithm> // all_of, find, for_each
|
#include <algorithm> // all_of, find, for_each
|
||||||
#include <cstddef> // nullptr_t, ptrdiff_t, size_t
|
#include <cstddef> // nullptr_t, ptrdiff_t, size_t
|
||||||
@@ -167,7 +167,7 @@ inline bool operator<(const value_t lhs, const value_t rhs) noexcept
|
|||||||
// #include <nlohmann/detail/macro_scope.hpp>
|
// #include <nlohmann/detail/macro_scope.hpp>
|
||||||
|
|
||||||
|
|
||||||
#include <utility> // declval, pair
|
#include <utility> // pair
|
||||||
// #include <nlohmann/thirdparty/hedley/hedley.hpp>
|
// #include <nlohmann/thirdparty/hedley/hedley.hpp>
|
||||||
|
|
||||||
|
|
||||||
@@ -2214,83 +2214,6 @@ JSON_HEDLEY_DIAGNOSTIC_POP
|
|||||||
|
|
||||||
#endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */
|
#endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/detected.hpp>
|
|
||||||
|
|
||||||
|
|
||||||
#include <type_traits>
|
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/void_t.hpp>
|
|
||||||
|
|
||||||
|
|
||||||
namespace nlohmann
|
|
||||||
{
|
|
||||||
namespace detail
|
|
||||||
{
|
|
||||||
template<typename ...Ts> struct make_void
|
|
||||||
{
|
|
||||||
using type = void;
|
|
||||||
};
|
|
||||||
template<typename ...Ts> using void_t = typename make_void<Ts...>::type;
|
|
||||||
} // namespace detail
|
|
||||||
} // namespace nlohmann
|
|
||||||
|
|
||||||
|
|
||||||
// https://en.cppreference.com/w/cpp/experimental/is_detected
|
|
||||||
namespace nlohmann
|
|
||||||
{
|
|
||||||
namespace detail
|
|
||||||
{
|
|
||||||
struct nonesuch
|
|
||||||
{
|
|
||||||
nonesuch() = delete;
|
|
||||||
~nonesuch() = delete;
|
|
||||||
nonesuch(nonesuch const&) = delete;
|
|
||||||
nonesuch(nonesuch const&&) = delete;
|
|
||||||
void operator=(nonesuch const&) = delete;
|
|
||||||
void operator=(nonesuch&&) = delete;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class Default,
|
|
||||||
class AlwaysVoid,
|
|
||||||
template<class...> class Op,
|
|
||||||
class... Args>
|
|
||||||
struct detector
|
|
||||||
{
|
|
||||||
using value_t = std::false_type;
|
|
||||||
using type = Default;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class Default, template<class...> class Op, class... Args>
|
|
||||||
struct detector<Default, void_t<Op<Args...>>, Op, Args...>
|
|
||||||
{
|
|
||||||
using value_t = std::true_type;
|
|
||||||
using type = Op<Args...>;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<template<class...> class Op, class... Args>
|
|
||||||
using is_detected = typename detector<nonesuch, void, Op, Args...>::value_t;
|
|
||||||
|
|
||||||
template<template<class...> class Op, class... Args>
|
|
||||||
struct is_detected_lazy : is_detected<Op, Args...> { };
|
|
||||||
|
|
||||||
template<template<class...> class Op, class... Args>
|
|
||||||
using detected_t = typename detector<nonesuch, void, Op, Args...>::type;
|
|
||||||
|
|
||||||
template<class Default, template<class...> class Op, class... Args>
|
|
||||||
using detected_or = detector<Default, void, Op, Args...>;
|
|
||||||
|
|
||||||
template<class Default, template<class...> class Op, class... Args>
|
|
||||||
using detected_or_t = typename detected_or<Default, Op, Args...>::type;
|
|
||||||
|
|
||||||
template<class Expected, template<class...> class Op, class... Args>
|
|
||||||
using is_detected_exact = std::is_same<Expected, detected_t<Op, Args...>>;
|
|
||||||
|
|
||||||
template<class To, template<class...> class Op, class... Args>
|
|
||||||
using is_detected_convertible =
|
|
||||||
std::is_convertible<detected_t<Op, Args...>, To>;
|
|
||||||
} // namespace detail
|
|
||||||
} // namespace nlohmann
|
|
||||||
|
|
||||||
|
|
||||||
// This file contains all internal macro definitions
|
// This file contains all internal macro definitions
|
||||||
// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them
|
// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them
|
||||||
@@ -2581,45 +2504,6 @@ using is_detected_convertible =
|
|||||||
inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
|
inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \
|
||||||
inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }
|
inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }
|
||||||
|
|
||||||
|
|
||||||
// inspired from https://stackoverflow.com/a/26745591
|
|
||||||
// allows to call any std function as if (e.g. with begin):
|
|
||||||
// using std::begin; begin(x);
|
|
||||||
//
|
|
||||||
// it allows using the detected idiom to retrieve the return type
|
|
||||||
// of such an expression
|
|
||||||
#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name) \
|
|
||||||
namespace detail { \
|
|
||||||
using std::std_name; \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
using result_of_##std_name = decltype(std_name(std::declval<T>()...)); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
namespace detail2 { \
|
|
||||||
struct std_name##_tag \
|
|
||||||
{ \
|
|
||||||
}; \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
std_name##_tag std_name(T&&...); \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
using result_of_##std_name = decltype(std_name(std::declval<T>()...)); \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
struct would_call_std_##std_name \
|
|
||||||
{ \
|
|
||||||
static constexpr auto const value = ::nlohmann::detail:: \
|
|
||||||
is_detected_exact<std_name##_tag, result_of_##std_name, T...>::value; \
|
|
||||||
}; \
|
|
||||||
} /* namespace detail2 */ \
|
|
||||||
\
|
|
||||||
template<typename... T> \
|
|
||||||
struct would_call_std_##std_name : detail2::would_call_std_##std_name<T...> \
|
|
||||||
{ \
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef JSON_USE_IMPLICIT_CONVERSIONS
|
#ifndef JSON_USE_IMPLICIT_CONVERSIONS
|
||||||
#define JSON_USE_IMPLICIT_CONVERSIONS 1
|
#define JSON_USE_IMPLICIT_CONVERSIONS 1
|
||||||
#endif
|
#endif
|
||||||
@@ -2630,10 +2514,6 @@ using is_detected_convertible =
|
|||||||
#define JSON_EXPLICIT explicit
|
#define JSON_EXPLICIT explicit
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef JSON_DIAGNOSTICS
|
|
||||||
#define JSON_DIAGNOSTICS 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
namespace nlohmann
|
namespace nlohmann
|
||||||
{
|
{
|
||||||
@@ -3323,9 +3203,6 @@ template <class T> struct identity_tag {};
|
|||||||
#include <utility> // declval
|
#include <utility> // declval
|
||||||
#include <tuple> // tuple
|
#include <tuple> // tuple
|
||||||
|
|
||||||
// #include <nlohmann/detail/macro_scope.hpp>
|
|
||||||
|
|
||||||
|
|
||||||
// #include <nlohmann/detail/iterators/iterator_traits.hpp>
|
// #include <nlohmann/detail/iterators/iterator_traits.hpp>
|
||||||
|
|
||||||
|
|
||||||
@@ -3333,6 +3210,19 @@ template <class T> struct identity_tag {};
|
|||||||
|
|
||||||
// #include <nlohmann/detail/meta/void_t.hpp>
|
// #include <nlohmann/detail/meta/void_t.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
namespace nlohmann
|
||||||
|
{
|
||||||
|
namespace detail
|
||||||
|
{
|
||||||
|
template<typename ...Ts> struct make_void
|
||||||
|
{
|
||||||
|
using type = void;
|
||||||
|
};
|
||||||
|
template<typename ...Ts> using void_t = typename make_void<Ts...>::type;
|
||||||
|
} // namespace detail
|
||||||
|
} // namespace nlohmann
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/cpp_future.hpp>
|
// #include <nlohmann/detail/meta/cpp_future.hpp>
|
||||||
|
|
||||||
|
|
||||||
@@ -3381,32 +3271,74 @@ struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
|
|||||||
} // namespace detail
|
} // namespace detail
|
||||||
} // namespace nlohmann
|
} // namespace nlohmann
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/call_std/begin.hpp>
|
|
||||||
|
|
||||||
|
|
||||||
// #include <nlohmann/detail/macro_scope.hpp>
|
// #include <nlohmann/detail/macro_scope.hpp>
|
||||||
|
|
||||||
|
|
||||||
namespace nlohmann
|
|
||||||
{
|
|
||||||
NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin);
|
|
||||||
} // namespace nlohmann
|
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/call_std/end.hpp>
|
|
||||||
|
|
||||||
|
|
||||||
// #include <nlohmann/detail/macro_scope.hpp>
|
|
||||||
|
|
||||||
|
|
||||||
namespace nlohmann
|
|
||||||
{
|
|
||||||
NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end);
|
|
||||||
} // namespace nlohmann
|
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/cpp_future.hpp>
|
// #include <nlohmann/detail/meta/cpp_future.hpp>
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/detected.hpp>
|
// #include <nlohmann/detail/meta/detected.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
// #include <nlohmann/detail/meta/void_t.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
// https://en.cppreference.com/w/cpp/experimental/is_detected
|
||||||
|
namespace nlohmann
|
||||||
|
{
|
||||||
|
namespace detail
|
||||||
|
{
|
||||||
|
struct nonesuch
|
||||||
|
{
|
||||||
|
nonesuch() = delete;
|
||||||
|
~nonesuch() = delete;
|
||||||
|
nonesuch(nonesuch const&) = delete;
|
||||||
|
nonesuch(nonesuch const&&) = delete;
|
||||||
|
void operator=(nonesuch const&) = delete;
|
||||||
|
void operator=(nonesuch&&) = delete;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class Default,
|
||||||
|
class AlwaysVoid,
|
||||||
|
template<class...> class Op,
|
||||||
|
class... Args>
|
||||||
|
struct detector
|
||||||
|
{
|
||||||
|
using value_t = std::false_type;
|
||||||
|
using type = Default;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class Default, template<class...> class Op, class... Args>
|
||||||
|
struct detector<Default, void_t<Op<Args...>>, Op, Args...>
|
||||||
|
{
|
||||||
|
using value_t = std::true_type;
|
||||||
|
using type = Op<Args...>;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<template<class...> class Op, class... Args>
|
||||||
|
using is_detected = typename detector<nonesuch, void, Op, Args...>::value_t;
|
||||||
|
|
||||||
|
template<template<class...> class Op, class... Args>
|
||||||
|
struct is_detected_lazy : is_detected<Op, Args...> { };
|
||||||
|
|
||||||
|
template<template<class...> class Op, class... Args>
|
||||||
|
using detected_t = typename detector<nonesuch, void, Op, Args...>::type;
|
||||||
|
|
||||||
|
template<class Default, template<class...> class Op, class... Args>
|
||||||
|
using detected_or = detector<Default, void, Op, Args...>;
|
||||||
|
|
||||||
|
template<class Default, template<class...> class Op, class... Args>
|
||||||
|
using detected_or_t = typename detected_or<Default, Op, Args...>::type;
|
||||||
|
|
||||||
|
template<class Expected, template<class...> class Op, class... Args>
|
||||||
|
using is_detected_exact = std::is_same<Expected, detected_t<Op, Args...>>;
|
||||||
|
|
||||||
|
template<class To, template<class...> class Op, class... Args>
|
||||||
|
using is_detected_convertible =
|
||||||
|
std::is_convertible<detected_t<Op, Args...>, To>;
|
||||||
|
} // namespace detail
|
||||||
|
} // namespace nlohmann
|
||||||
|
|
||||||
// #include <nlohmann/json_fwd.hpp>
|
// #include <nlohmann/json_fwd.hpp>
|
||||||
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
||||||
#define INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
#define INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
||||||
@@ -3556,6 +3488,9 @@ using reference_t = typename T::reference;
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
using iterator_category_t = typename T::iterator_category;
|
using iterator_category_t = typename T::iterator_category;
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
using iterator_t = typename T::iterator;
|
||||||
|
|
||||||
template<typename T, typename... Args>
|
template<typename T, typename... Args>
|
||||||
using to_json_function = decltype(T::to_json(std::declval<Args>()...));
|
using to_json_function = decltype(T::to_json(std::declval<Args>()...));
|
||||||
|
|
||||||
@@ -3691,31 +3626,6 @@ struct is_iterator_traits<iterator_traits<T>>
|
|||||||
is_detected<reference_t, traits>::value;
|
is_detected<reference_t, traits>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
struct is_range
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
using t_ref = typename std::add_lvalue_reference<T>::type;
|
|
||||||
|
|
||||||
using iterator = detected_t<result_of_begin, t_ref>;
|
|
||||||
using sentinel = detected_t<result_of_end, t_ref>;
|
|
||||||
|
|
||||||
// to be 100% correct, it should use https://en.cppreference.com/w/cpp/iterator/input_or_output_iterator
|
|
||||||
// and https://en.cppreference.com/w/cpp/iterator/sentinel_for
|
|
||||||
// but reimplementing these would be too much work, as a lot of other concepts are used underneath
|
|
||||||
static constexpr auto is_iterator_begin =
|
|
||||||
is_iterator_traits<iterator_traits<iterator>>::value;
|
|
||||||
|
|
||||||
public:
|
|
||||||
static constexpr bool value = !std::is_same<iterator, nonesuch>::value && !std::is_same<sentinel, nonesuch>::value && is_iterator_begin;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<typename R>
|
|
||||||
using iterator_t = enable_if_t<is_range<R>::value, result_of_begin<decltype(std::declval<R&>())>>;
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
using range_value_t = value_type_t<iterator_traits<iterator_t<T>>>;
|
|
||||||
|
|
||||||
// The following implementation of is_complete_type is taken from
|
// The following implementation of is_complete_type is taken from
|
||||||
// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/
|
// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/
|
||||||
// and is written by Xiang Fan who agreed to using it in this library.
|
// and is written by Xiang Fan who agreed to using it in this library.
|
||||||
@@ -3790,9 +3700,8 @@ struct is_compatible_string_type_impl : std::false_type {};
|
|||||||
template<typename BasicJsonType, typename CompatibleStringType>
|
template<typename BasicJsonType, typename CompatibleStringType>
|
||||||
struct is_compatible_string_type_impl <
|
struct is_compatible_string_type_impl <
|
||||||
BasicJsonType, CompatibleStringType,
|
BasicJsonType, CompatibleStringType,
|
||||||
enable_if_t<is_detected_convertible<typename BasicJsonType::string_t::value_type,
|
enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type,
|
||||||
range_value_t,
|
value_type_t, CompatibleStringType>::value >>
|
||||||
CompatibleStringType>::value >>
|
|
||||||
{
|
{
|
||||||
static constexpr auto value =
|
static constexpr auto value =
|
||||||
is_constructible<typename BasicJsonType::string_t, CompatibleStringType>::value;
|
is_constructible<typename BasicJsonType::string_t, CompatibleStringType>::value;
|
||||||
@@ -3827,13 +3736,17 @@ struct is_compatible_array_type_impl : std::false_type {};
|
|||||||
template<typename BasicJsonType, typename CompatibleArrayType>
|
template<typename BasicJsonType, typename CompatibleArrayType>
|
||||||
struct is_compatible_array_type_impl <
|
struct is_compatible_array_type_impl <
|
||||||
BasicJsonType, CompatibleArrayType,
|
BasicJsonType, CompatibleArrayType,
|
||||||
enable_if_t <
|
enable_if_t < is_detected<value_type_t, CompatibleArrayType>::value&&
|
||||||
is_detected<iterator_t, CompatibleArrayType>::value&&
|
is_detected<iterator_t, CompatibleArrayType>::value&&
|
||||||
is_iterator_traits<iterator_traits<detected_t<iterator_t, CompatibleArrayType>>>::value >>
|
// This is needed because json_reverse_iterator has a ::iterator type...
|
||||||
|
// Therefore it is detected as a CompatibleArrayType.
|
||||||
|
// The real fix would be to have an Iterable concept.
|
||||||
|
!is_iterator_traits <
|
||||||
|
iterator_traits<CompatibleArrayType >>::value >>
|
||||||
{
|
{
|
||||||
static constexpr bool value =
|
static constexpr bool value =
|
||||||
is_constructible<BasicJsonType,
|
is_constructible<BasicJsonType,
|
||||||
range_value_t<CompatibleArrayType>>::value;
|
typename CompatibleArrayType::value_type>::value;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename BasicJsonType, typename CompatibleArrayType>
|
template<typename BasicJsonType, typename CompatibleArrayType>
|
||||||
@@ -3855,26 +3768,28 @@ struct is_constructible_array_type_impl <
|
|||||||
BasicJsonType, ConstructibleArrayType,
|
BasicJsonType, ConstructibleArrayType,
|
||||||
enable_if_t < !std::is_same<ConstructibleArrayType,
|
enable_if_t < !std::is_same<ConstructibleArrayType,
|
||||||
typename BasicJsonType::value_type>::value&&
|
typename BasicJsonType::value_type>::value&&
|
||||||
!is_compatible_string_type<BasicJsonType, ConstructibleArrayType>::value&&
|
|
||||||
is_default_constructible<ConstructibleArrayType>::value&&
|
is_default_constructible<ConstructibleArrayType>::value&&
|
||||||
(std::is_move_assignable<ConstructibleArrayType>::value ||
|
(std::is_move_assignable<ConstructibleArrayType>::value ||
|
||||||
std::is_copy_assignable<ConstructibleArrayType>::value)&&
|
std::is_copy_assignable<ConstructibleArrayType>::value)&&
|
||||||
|
is_detected<value_type_t, ConstructibleArrayType>::value&&
|
||||||
is_detected<iterator_t, ConstructibleArrayType>::value&&
|
is_detected<iterator_t, ConstructibleArrayType>::value&&
|
||||||
is_iterator_traits<iterator_traits<detected_t<iterator_t, ConstructibleArrayType>>>::value&&
|
|
||||||
is_detected<range_value_t, ConstructibleArrayType>::value&&
|
|
||||||
is_complete_type <
|
is_complete_type <
|
||||||
detected_t<range_value_t, ConstructibleArrayType >>::value >>
|
detected_t<value_type_t, ConstructibleArrayType >>::value >>
|
||||||
{
|
{
|
||||||
using value_type = range_value_t<ConstructibleArrayType>;
|
|
||||||
|
|
||||||
static constexpr bool value =
|
static constexpr bool value =
|
||||||
std::is_same<value_type,
|
// This is needed because json_reverse_iterator has a ::iterator type,
|
||||||
typename BasicJsonType::array_t::value_type>::value ||
|
// furthermore, std::back_insert_iterator (and other iterators) have a
|
||||||
has_from_json<BasicJsonType,
|
// base class `iterator`... Therefore it is detected as a
|
||||||
value_type>::value ||
|
// ConstructibleArrayType. The real fix would be to have an Iterable
|
||||||
has_non_default_from_json <
|
// concept.
|
||||||
BasicJsonType,
|
!is_iterator_traits<iterator_traits<ConstructibleArrayType>>::value &&
|
||||||
value_type >::value;
|
|
||||||
|
(std::is_same<typename ConstructibleArrayType::value_type,
|
||||||
|
typename BasicJsonType::array_t::value_type>::value ||
|
||||||
|
has_from_json<BasicJsonType,
|
||||||
|
typename ConstructibleArrayType::value_type>::value ||
|
||||||
|
has_non_default_from_json <
|
||||||
|
BasicJsonType, typename ConstructibleArrayType::value_type >::value);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename BasicJsonType, typename ConstructibleArrayType>
|
template<typename BasicJsonType, typename ConstructibleArrayType>
|
||||||
@@ -3930,24 +3845,6 @@ struct is_constructible_tuple : std::false_type {};
|
|||||||
template<typename T1, typename... Args>
|
template<typename T1, typename... Args>
|
||||||
struct is_constructible_tuple<T1, std::tuple<Args...>> : conjunction<is_constructible<T1, Args>...> {};
|
struct is_constructible_tuple<T1, std::tuple<Args...>> : conjunction<is_constructible<T1, Args>...> {};
|
||||||
|
|
||||||
// a naive helper to check if a type is an ordered_map (exploits the fact that
|
|
||||||
// ordered_map inherits capacity() from std::vector)
|
|
||||||
template <typename T>
|
|
||||||
struct is_ordered_map
|
|
||||||
{
|
|
||||||
using one = char;
|
|
||||||
|
|
||||||
struct two
|
|
||||||
{
|
|
||||||
char x[2]; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename C> static one test( decltype(&C::capacity) ) ;
|
|
||||||
template <typename C> static two test(...);
|
|
||||||
|
|
||||||
enum { value = sizeof(test<T>(nullptr)) == sizeof(char) }; // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg)
|
|
||||||
};
|
|
||||||
|
|
||||||
// to avoid useless casts (see https://github.com/nlohmann/json/issues/2893#issuecomment-889152324)
|
// to avoid useless casts (see https://github.com/nlohmann/json/issues/2893#issuecomment-889152324)
|
||||||
template < typename T, typename U, enable_if_t < !std::is_same<T, U>::value, int > = 0 >
|
template < typename T, typename U, enable_if_t < !std::is_same<T, U>::value, int > = 0 >
|
||||||
T conditional_static_cast(U value)
|
T conditional_static_cast(U value)
|
||||||
@@ -4705,7 +4602,7 @@ struct external_constructor<value_t::binary>
|
|||||||
{
|
{
|
||||||
j.m_value.destroy(j.m_type);
|
j.m_value.destroy(j.m_type);
|
||||||
j.m_type = value_t::binary;
|
j.m_type = value_t::binary;
|
||||||
j.m_value = typename BasicJsonType::binary_t(std::move(b));
|
j.m_value = typename BasicJsonType::binary_t(std::move(b));;
|
||||||
j.assert_invariant();
|
j.assert_invariant();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -5272,8 +5169,6 @@ class byte_container_with_subtype : public BinaryType
|
|||||||
|
|
||||||
// #include <nlohmann/detail/macro_scope.hpp>
|
// #include <nlohmann/detail/macro_scope.hpp>
|
||||||
|
|
||||||
// #include <nlohmann/detail/value_t.hpp>
|
|
||||||
|
|
||||||
|
|
||||||
namespace nlohmann
|
namespace nlohmann
|
||||||
{
|
{
|
||||||
@@ -13566,11 +13461,11 @@ template<typename CharType>
|
|||||||
using output_adapter_t = std::shared_ptr<output_adapter_protocol<CharType>>;
|
using output_adapter_t = std::shared_ptr<output_adapter_protocol<CharType>>;
|
||||||
|
|
||||||
/// output adapter for byte vectors
|
/// output adapter for byte vectors
|
||||||
template<typename CharType, typename AllocatorType = std::allocator<CharType>>
|
template<typename CharType>
|
||||||
class output_vector_adapter : public output_adapter_protocol<CharType>
|
class output_vector_adapter : public output_adapter_protocol<CharType>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit output_vector_adapter(std::vector<CharType, AllocatorType>& vec) noexcept
|
explicit output_vector_adapter(std::vector<CharType>& vec) noexcept
|
||||||
: v(vec)
|
: v(vec)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -13586,7 +13481,7 @@ class output_vector_adapter : public output_adapter_protocol<CharType>
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<CharType, AllocatorType>& v;
|
std::vector<CharType>& v;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef JSON_NO_IO
|
#ifndef JSON_NO_IO
|
||||||
@@ -13643,9 +13538,8 @@ template<typename CharType, typename StringType = std::basic_string<CharType>>
|
|||||||
class output_adapter
|
class output_adapter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
template<typename AllocatorType = std::allocator<CharType>>
|
output_adapter(std::vector<CharType>& vec)
|
||||||
output_adapter(std::vector<CharType, AllocatorType>& vec)
|
: oa(std::make_shared<output_vector_adapter<CharType>>(vec)) {}
|
||||||
: oa(std::make_shared<output_vector_adapter<CharType, AllocatorType>>(vec)) {}
|
|
||||||
|
|
||||||
#ifndef JSON_NO_IO
|
#ifndef JSON_NO_IO
|
||||||
output_adapter(std::basic_ostream<CharType>& s)
|
output_adapter(std::basic_ostream<CharType>& s)
|
||||||
@@ -13721,7 +13615,7 @@ class binary_writer
|
|||||||
case value_t::discarded:
|
case value_t::discarded:
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
JSON_THROW(type_error::create(317, "to serialize to BSON, top-level type must be object, but is " + std::string(j.type_name()), j));
|
JSON_THROW(type_error::create(317, "to serialize to BSON, top-level type must be object, but is " + std::string(j.type_name()), j));;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18552,7 +18446,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
object = nullptr; // silence warning, see #821
|
object = nullptr; // silence warning, see #821
|
||||||
if (JSON_HEDLEY_UNLIKELY(t == value_t::null))
|
if (JSON_HEDLEY_UNLIKELY(t == value_t::null))
|
||||||
{
|
{
|
||||||
JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.10.3", basic_json())); // LCOV_EXCL_LINE
|
JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.10.0", basic_json())); // LCOV_EXCL_LINE
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -18823,21 +18717,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ordered_json uses a vector internally, so pointers could have
|
|
||||||
// been invalidated; see https://github.com/nlohmann/json/issues/2962
|
|
||||||
#ifdef JSON_HEDLEY_MSVC_VERSION
|
|
||||||
#pragma warning(push )
|
|
||||||
#pragma warning(disable : 4127) // ignore warning to replace if with if constexpr
|
|
||||||
#endif
|
|
||||||
if (detail::is_ordered_map<object_t>::value)
|
|
||||||
{
|
|
||||||
set_parents();
|
|
||||||
return j;
|
|
||||||
}
|
|
||||||
#ifdef JSON_HEDLEY_MSVC_VERSION
|
|
||||||
#pragma warning( pop )
|
|
||||||
#endif
|
|
||||||
|
|
||||||
j.m_parent = this;
|
j.m_parent = this;
|
||||||
#else
|
#else
|
||||||
static_cast<void>(j);
|
static_cast<void>(j);
|
||||||
@@ -21182,25 +21061,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
if (idx >= m_value.array->size())
|
if (idx >= m_value.array->size())
|
||||||
{
|
{
|
||||||
#if JSON_DIAGNOSTICS
|
#if JSON_DIAGNOSTICS
|
||||||
// remember array size & capacity before resizing
|
// remember array size before resizing
|
||||||
const auto old_size = m_value.array->size();
|
const auto previous_size = m_value.array->size();
|
||||||
const auto old_capacity = m_value.array->capacity();
|
|
||||||
#endif
|
#endif
|
||||||
m_value.array->resize(idx + 1);
|
m_value.array->resize(idx + 1);
|
||||||
|
|
||||||
#if JSON_DIAGNOSTICS
|
#if JSON_DIAGNOSTICS
|
||||||
if (JSON_HEDLEY_UNLIKELY(m_value.array->capacity() != old_capacity))
|
// set parent for values added above
|
||||||
{
|
set_parents(begin() + static_cast<typename iterator::difference_type>(previous_size), static_cast<typename iterator::difference_type>(idx + 1 - previous_size));
|
||||||
// capacity has changed: update all parents
|
|
||||||
set_parents();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// set parent for values added above
|
|
||||||
set_parents(begin() + static_cast<typename iterator::difference_type>(old_size), static_cast<typename iterator::difference_type>(idx + 1 - old_size));
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
assert_invariant();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_value.array->operator[](idx);
|
return m_value.array->operator[](idx);
|
||||||
@@ -23506,9 +23375,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
for (auto it = j.cbegin(); it != j.cend(); ++it)
|
for (auto it = j.cbegin(); it != j.cend(); ++it)
|
||||||
{
|
{
|
||||||
m_value.object->operator[](it.key()) = it.value();
|
m_value.object->operator[](it.key()) = it.value();
|
||||||
#if JSON_DIAGNOSTICS
|
|
||||||
m_value.object->operator[](it.key()).m_parent = this;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23569,9 +23435,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
for (auto it = first; it != last; ++it)
|
for (auto it = first; it != last; ++it)
|
||||||
{
|
{
|
||||||
m_value.object->operator[](it.key()) = it.value();
|
m_value.object->operator[](it.key()) = it.value();
|
||||||
#if JSON_DIAGNOSTICS
|
|
||||||
m_value.object->operator[](it.key()).m_parent = this;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -26580,7 +26443,6 @@ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std
|
|||||||
#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION
|
#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION
|
||||||
#undef NLOHMANN_BASIC_JSON_TPL
|
#undef NLOHMANN_BASIC_JSON_TPL
|
||||||
#undef JSON_EXPLICIT
|
#undef JSON_EXPLICIT
|
||||||
#undef NLOHMANN_CAN_CALL_STD_FUNC_IMPL
|
|
||||||
|
|
||||||
// #include <nlohmann/thirdparty/hedley/hedley_undef.hpp>
|
// #include <nlohmann/thirdparty/hedley/hedley_undef.hpp>
|
||||||
|
|
||||||
|
|||||||
+12
-12
@@ -100,23 +100,23 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
|||||||
#target_compile_definitions(test-disabled_exceptions PUBLIC _HAS_EXCEPTIONS=0)
|
#target_compile_definitions(test-disabled_exceptions PUBLIC _HAS_EXCEPTIONS=0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# avoid stack overflow, see https://github.com/nlohmann/json/issues/2955
|
add_executable(json_unit EXCLUDE_FROM_ALL $<TARGET_OBJECTS:doctest_main> ${files})
|
||||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
target_compile_definitions(json_unit PRIVATE DOCTEST_CONFIG_SUPER_FAST_ASSERTS)
|
||||||
set_property(TARGET test-cbor APPEND_STRING PROPERTY LINK_FLAGS " /STACK:4000000")
|
target_compile_options(json_unit PRIVATE
|
||||||
set_property(TARGET test-msgpack APPEND_STRING PROPERTY LINK_FLAGS " /STACK:4000000")
|
$<$<CXX_COMPILER_ID:MSVC>:/EHsc;$<$<CONFIG:Release>:/Od>>
|
||||||
set_property(TARGET test-ubjson APPEND_STRING PROPERTY LINK_FLAGS " /STACK:4000000")
|
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-Wno-deprecated;-Wno-float-equal>
|
||||||
endif()
|
$<$<CXX_COMPILER_ID:GNU>:-Wno-deprecated-declarations>
|
||||||
|
)
|
||||||
|
target_include_directories(json_unit PRIVATE ${CMAKE_BINARY_DIR}/include thirdparty/doctest thirdparty/fifo_map)
|
||||||
|
target_link_libraries(json_unit ${NLOHMANN_JSON_TARGET_NAME})
|
||||||
|
add_dependencies(json_unit download_test_data)
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Test the generated build configs
|
# Test the generated build configs
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
# these tests depend on the generated file nlohmann_jsonConfig.cmake
|
add_subdirectory(cmake_import)
|
||||||
if (JSON_Install)
|
add_subdirectory(cmake_import_minver)
|
||||||
add_subdirectory(cmake_import)
|
|
||||||
add_subdirectory(cmake_import_minver)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_subdirectory(cmake_add_subdirectory)
|
add_subdirectory(cmake_add_subdirectory)
|
||||||
add_subdirectory(cmake_fetch_content)
|
add_subdirectory(cmake_fetch_content)
|
||||||
add_subdirectory(cmake_target_include_directories)
|
add_subdirectory(cmake_target_include_directories)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
This file implements a driver for American Fuzzy Lop (afl-fuzz). It relies on
|
This file implements a driver for American Fuzzy Lop (afl-fuzz). It relies on
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
This file implements a parser test suitable for fuzz testing. Given a byte
|
This file implements a parser test suitable for fuzz testing. Given a byte
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
This file implements a parser test suitable for fuzz testing. Given a byte
|
This file implements a parser test suitable for fuzz testing. Given a byte
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
This file implements a parser test suitable for fuzz testing. Given a byte
|
This file implements a parser test suitable for fuzz testing. Given a byte
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
This file implements a parser test suitable for fuzz testing. Given a byte
|
This file implements a parser test suitable for fuzz testing. Given a byte
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
__| | __| | | | JSON for Modern C++ (fuzz test support)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
This file implements a parser test suitable for fuzz testing. Given a byte
|
This file implements a parser test suitable for fuzz testing. Given a byte
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
@@ -174,81 +174,4 @@ TEST_CASE("Better diagnostics")
|
|||||||
j_obj["key"] = j_arr;
|
j_obj["key"] = j_arr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("Regression test for issue #2962 - JSON_DIAGNOSTICS assertion for ordered_json")
|
|
||||||
{
|
|
||||||
nlohmann::ordered_json j;
|
|
||||||
nlohmann::ordered_json j2;
|
|
||||||
const std::string value;
|
|
||||||
j["first"] = value;
|
|
||||||
j["second"] = value;
|
|
||||||
j2["something"] = j;
|
|
||||||
}
|
|
||||||
|
|
||||||
SECTION("Regression test for issue #3007 - Parent pointers properly set when using update()")
|
|
||||||
{
|
|
||||||
// void update(const_reference j)
|
|
||||||
{
|
|
||||||
json j = json::object();
|
|
||||||
|
|
||||||
{
|
|
||||||
json j2 = json::object();
|
|
||||||
j2["one"] = 1;
|
|
||||||
|
|
||||||
j.update(j2);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Must call operator[] on const element, otherwise m_parent gets updated.
|
|
||||||
auto const& constJ = j;
|
|
||||||
CHECK_THROWS_WITH_AS(constJ["one"].at(0), "[json.exception.type_error.304] (/one) cannot use at() with number", json::type_error);
|
|
||||||
}
|
|
||||||
|
|
||||||
// void update(const_iterator first, const_iterator last)
|
|
||||||
{
|
|
||||||
json j = json::object();
|
|
||||||
|
|
||||||
{
|
|
||||||
json j2 = json::object();
|
|
||||||
j2["one"] = 1;
|
|
||||||
|
|
||||||
j.update(j2.begin(), j2.end());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Must call operator[] on const element, otherwise m_parent gets updated.
|
|
||||||
auto const& constJ = j;
|
|
||||||
CHECK_THROWS_WITH_AS(constJ["one"].at(0), "[json.exception.type_error.304] (/one) cannot use at() with number", json::type_error);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Code from #3007 triggering unwanted assertion without fix to update().
|
|
||||||
{
|
|
||||||
json root = json::array();
|
|
||||||
json lower = json::object();
|
|
||||||
|
|
||||||
{
|
|
||||||
json lowest = json::object();
|
|
||||||
lowest["one"] = 1;
|
|
||||||
|
|
||||||
lower.update(lowest);
|
|
||||||
}
|
|
||||||
|
|
||||||
root.push_back(lower);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SECTION("Regression test for https://github.com/nlohmann/json/issues/3032")
|
|
||||||
{
|
|
||||||
// reference operator[](size_type idx)
|
|
||||||
{
|
|
||||||
json j_arr = json::array();
|
|
||||||
j_arr[0] = 0;
|
|
||||||
j_arr[1] = 1;
|
|
||||||
j_arr[2] = 2;
|
|
||||||
j_arr[3] = 3;
|
|
||||||
j_arr[4] = 4;
|
|
||||||
j_arr[5] = 5;
|
|
||||||
j_arr[6] = 6;
|
|
||||||
j_arr[7] = 7;
|
|
||||||
json j_arr_copy = j_arr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
@@ -43,10 +43,10 @@ TEST_CASE("version information")
|
|||||||
CHECK(j["url"] == "https://github.com/nlohmann/json");
|
CHECK(j["url"] == "https://github.com/nlohmann/json");
|
||||||
CHECK(j["version"] == json(
|
CHECK(j["version"] == json(
|
||||||
{
|
{
|
||||||
{"string", "3.10.3"},
|
{"string", "3.10.0"},
|
||||||
{"major", 3},
|
{"major", 3},
|
||||||
{"minor", 10},
|
{"minor", 10},
|
||||||
{"patch", 3}
|
{"patch", 0}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
CHECK(j.find("platform") != j.end());
|
CHECK(j.find("platform") != j.end());
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
@@ -34,8 +34,7 @@ SOFTWARE.
|
|||||||
|
|
||||||
#define JSON_TESTS_PRIVATE
|
#define JSON_TESTS_PRIVATE
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
using json = nlohmann::json;
|
using nlohmann::json;
|
||||||
using ordered_json = nlohmann::ordered_json;
|
|
||||||
|
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
@@ -181,13 +180,6 @@ class sax_no_exception : public nlohmann::detail::json_sax_dom_parser<json>
|
|||||||
|
|
||||||
std::string* sax_no_exception::error_string = nullptr;
|
std::string* sax_no_exception::error_string = nullptr;
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////
|
|
||||||
// for #2982
|
|
||||||
/////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
class my_allocator : public std::allocator<T>
|
|
||||||
{};
|
|
||||||
|
|
||||||
TEST_CASE("regression tests 2")
|
TEST_CASE("regression tests 2")
|
||||||
{
|
{
|
||||||
@@ -667,34 +659,6 @@ TEST_CASE("regression tests 2")
|
|||||||
{
|
{
|
||||||
static_assert(std::is_copy_assignable<nlohmann::ordered_json>::value, "");
|
static_assert(std::is_copy_assignable<nlohmann::ordered_json>::value, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("issue #2958 - Inserting in unordered json using a pointer retains the leading slash")
|
|
||||||
{
|
|
||||||
std::string p = "/root";
|
|
||||||
|
|
||||||
// matching types
|
|
||||||
json test1;
|
|
||||||
test1[json::json_pointer(p)] = json::object();
|
|
||||||
CHECK(test1.dump() == "{\"root\":{}}");
|
|
||||||
|
|
||||||
ordered_json test2;
|
|
||||||
test2[ordered_json::json_pointer(p)] = json::object();
|
|
||||||
CHECK(test2.dump() == "{\"root\":{}}");
|
|
||||||
|
|
||||||
// mixed type - the JSON Pointer is implicitly converted into a string "/root"
|
|
||||||
ordered_json test3;
|
|
||||||
test3[json::json_pointer(p)] = json::object();
|
|
||||||
CHECK(test3.dump() == "{\"/root\":{}}");
|
|
||||||
}
|
|
||||||
|
|
||||||
SECTION("issue #2982 - to_{binary format} does not provide a mechanism for specifying a custom allocator for the returned type")
|
|
||||||
{
|
|
||||||
std::vector<std::uint8_t, my_allocator<std::uint8_t>> my_vector;
|
|
||||||
json j = {1, 2, 3, 4};
|
|
||||||
json::to_cbor(j, my_vector);
|
|
||||||
json k = json::from_cbor(my_vector);
|
|
||||||
CHECK(j == k);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DOCTEST_CLANG_SUPPRESS_WARNING_POP
|
DOCTEST_CLANG_SUPPRESS_WARNING_POP
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
+1
-31
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
@@ -850,34 +850,4 @@ TEST_CASE("Issue #1237")
|
|||||||
static_assert(!std::is_convertible<json, non_convertible_type>::value, "");
|
static_assert(!std::is_convertible<json, non_convertible_type>::value, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
class no_iterator_type
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
no_iterator_type(std::initializer_list<int> l)
|
|
||||||
: _v(l)
|
|
||||||
{}
|
|
||||||
|
|
||||||
std::vector<int>::const_iterator begin() const
|
|
||||||
{
|
|
||||||
return _v.begin();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<int>::const_iterator end() const
|
|
||||||
{
|
|
||||||
return _v.end();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
std::vector<int> _v;
|
|
||||||
};
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
TEST_CASE("compatible array type, without iterator type alias")
|
|
||||||
{
|
|
||||||
no_iterator_type vec{1, 2, 3};
|
|
||||||
json j = vec;
|
|
||||||
}
|
|
||||||
|
|
||||||
DOCTEST_GCC_SUPPRESS_WARNING_POP
|
DOCTEST_GCC_SUPPRESS_WARNING_POP
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
__ _____ _____ _____
|
__ _____ _____ _____
|
||||||
__| | __| | | | JSON for Modern C++ (test suite)
|
__| | __| | | | JSON for Modern C++ (test suite)
|
||||||
| | |__ | | | | | | version 3.10.3
|
| | |__ | | | | | | version 3.10.0
|
||||||
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
|_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
|
|
||||||
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
Licensed under the MIT License <http://opensource.org/licenses/MIT>.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user