Merge branch 'nlohmann:develop' into patch-1
This commit is contained in:
commit
c859d643d6
35
.github/workflows/macos.yml
vendored
35
.github/workflows/macos.yml
vendored
@ -35,28 +35,29 @@ jobs:
|
|||||||
# - name: Test
|
# - name: Test
|
||||||
# run: cd build ; ctest -j 10 --output-on-failure
|
# run: cd build ; ctest -j 10 --output-on-failure
|
||||||
|
|
||||||
macos-12:
|
# macos-12 is deprecated (https://github.com/actions/runner-images/issues/10721)
|
||||||
runs-on: macos-12 # https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md
|
# macos-12:
|
||||||
strategy:
|
# runs-on: macos-12 # https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md
|
||||||
matrix:
|
# strategy:
|
||||||
xcode: ['13.1', '13.2.1', '13.3.1', '13.4.1', '14.0', '14.0.1', '14.1']
|
# matrix:
|
||||||
env:
|
# xcode: ['13.1', '13.2.1', '13.3.1', '13.4.1', '14.0', '14.0.1', '14.1']
|
||||||
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
|
# env:
|
||||||
|
# DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
|
||||||
steps:
|
#
|
||||||
- uses: actions/checkout@v4
|
# steps:
|
||||||
- name: Run CMake
|
# - uses: actions/checkout@v4
|
||||||
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON
|
# - name: Run CMake
|
||||||
- name: Build
|
# run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON
|
||||||
run: cmake --build build --parallel 10
|
# - name: Build
|
||||||
- name: Test
|
# run: cmake --build build --parallel 10
|
||||||
run: cd build ; ctest -j 10 --output-on-failure
|
# - name: Test
|
||||||
|
# run: cd build ; ctest -j 10 --output-on-failure
|
||||||
|
|
||||||
macos-13:
|
macos-13:
|
||||||
runs-on: macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md
|
runs-on: macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
xcode: [ '14.2', '14.3', '14.3.1', '15.0.1', '15.1', '15.2']
|
xcode: ['14.1', '14.2', '14.3', '14.3.1', '15.0.1', '15.1', '15.2']
|
||||||
env:
|
env:
|
||||||
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
|
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
|
||||||
|
|
||||||
|
|||||||
53
.github/workflows/ubuntu.yml
vendored
53
.github/workflows/ubuntu.yml
vendored
@ -33,9 +33,11 @@ jobs:
|
|||||||
|
|
||||||
ci_test_gcc:
|
ci_test_gcc:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.4.0
|
container: gcc:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Get latest CMake and ninja
|
||||||
|
uses: lukka/get-cmake@v3.31.0
|
||||||
- name: Run CMake
|
- name: Run CMake
|
||||||
run: cmake -S . -B build -DJSON_CI=On
|
run: cmake -S . -B build -DJSON_CI=On
|
||||||
- name: Build
|
- name: Build
|
||||||
@ -46,7 +48,13 @@ jobs:
|
|||||||
container: ghcr.io/nlohmann/json-ci:v2.4.0
|
container: ghcr.io/nlohmann/json-ci:v2.4.0
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
target: [ci_cppcheck, ci_test_valgrind, ci_test_amalgamation, ci_test_single_header, ci_single_binaries, ci_infer]
|
target: [
|
||||||
|
ci_cppcheck, # needs cppcheck
|
||||||
|
ci_test_valgrind, # needs Valgrind
|
||||||
|
ci_test_amalgamation, # needs AStyle
|
||||||
|
ci_infer, # needs Infer
|
||||||
|
ci_single_binaries # needs iwyu
|
||||||
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Run CMake
|
- name: Run CMake
|
||||||
@ -54,6 +62,18 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build build --target ${{ matrix.target }}
|
run: cmake --build build --target ${{ matrix.target }}
|
||||||
|
|
||||||
|
ci_test_single_header:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: gcc:latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Get latest CMake and ninja
|
||||||
|
uses: lukka/get-cmake@v3.31.0
|
||||||
|
- name: Run CMake
|
||||||
|
run: cmake -S . -B build -DJSON_CI=On
|
||||||
|
- name: Build
|
||||||
|
run: cmake --build build --target ci_test_single_header
|
||||||
|
|
||||||
ci_static_analysis_ubuntu:
|
ci_static_analysis_ubuntu:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
@ -104,23 +124,29 @@ jobs:
|
|||||||
|
|
||||||
ci_test_coverage:
|
ci_test_coverage:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.4.0
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
checks: write
|
checks: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Install dependencies and de_DE locale
|
||||||
|
run: |
|
||||||
|
sudo apt-get clean
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y build-essential cmake lcov ninja-build make locales gcc-multilib g++-multilib
|
||||||
|
sudo locale-gen de_DE
|
||||||
|
sudo update-locale
|
||||||
- name: Run CMake
|
- name: Run CMake
|
||||||
run: cmake -S . -B build -DJSON_CI=On
|
run: cmake -S . -B build -DJSON_CI=On
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build build --target ci_test_coverage
|
run: cmake --build build --target ci_test_coverage
|
||||||
- name: Archive coverage report
|
- name: Archive coverage report
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: code-coverage-report
|
name: code-coverage-report
|
||||||
path: ${{ github.workspace }}/build/html
|
path: ${{ github.workspace }}/build/html
|
||||||
- name: Publish report to Coveralls
|
- name: Publish report to Coveralls
|
||||||
uses: coverallsapp/github-action@master
|
uses: coverallsapp/github-action@v2.3.4
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
path-to-lcov: ${{ github.workspace }}/build/json.info.filtered.noexcept
|
path-to-lcov: ${{ github.workspace }}/build/json.info.filtered.noexcept
|
||||||
@ -174,27 +200,16 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build build --target ci_test_compiler_default
|
run: cmake --build build --target ci_test_compiler_default
|
||||||
|
|
||||||
ci_test_compilers:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.4.0
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
compiler: [g++-4.8]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- name: Run CMake
|
|
||||||
run: cmake -S . -B build -DJSON_CI=On
|
|
||||||
- name: Build
|
|
||||||
run: cmake --build build --target ci_test_compiler_${{ matrix.compiler }}
|
|
||||||
|
|
||||||
ci_test_standards_gcc:
|
ci_test_standards_gcc:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.4.0
|
container: gcc:latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
standard: [11, 14, 17, 20, 23]
|
standard: [11, 14, 17, 20, 23]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Get latest CMake and ninja
|
||||||
|
uses: lukka/get-cmake@v3.31.0
|
||||||
- name: Run CMake
|
- name: Run CMake
|
||||||
run: cmake -S . -B build -DJSON_CI=On
|
run: cmake -S . -B build -DJSON_CI=On
|
||||||
- name: Build
|
- name: Build
|
||||||
|
|||||||
@ -4,9 +4,13 @@ Upstream-Contact: Niels Lohmann <mail@nlohmann.me>
|
|||||||
Source: https://github.com/nlohmann/json
|
Source: https://github.com/nlohmann/json
|
||||||
|
|
||||||
Files: *
|
Files: *
|
||||||
Copyright: 2013-2022 Niels Lohmann <https://nlohmann.me>
|
Copyright: 2013-2024 Niels Lohmann <https://nlohmann.me>
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|
||||||
|
Files: include/nlohmann/thirdparty/hedley.hpp
|
||||||
|
Copyright: 2016-2021 Evan Nemerson <evan@nemerson.com>
|
||||||
|
License: CC0
|
||||||
|
|
||||||
Files: tests/thirdparty/doctest/*
|
Files: tests/thirdparty/doctest/*
|
||||||
Copyright: 2016-2021 Viktor Kirilov
|
Copyright: 2016-2021 Viktor Kirilov
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -16,7 +20,7 @@ Copyright: 2015-2017 Niels Lohmann
|
|||||||
License: MIT
|
License: MIT
|
||||||
|
|
||||||
Files: tests/thirdparty/Fuzzer/*
|
Files: tests/thirdparty/Fuzzer/*
|
||||||
Copyright: 2003-2022, LLVM Project.
|
Copyright: 2003-2022 LLVM Project.
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
|
|
||||||
Files: tests/thirdparty/imapdl/*
|
Files: tests/thirdparty/imapdl/*
|
||||||
|
|||||||
@ -40,7 +40,7 @@ endif()
|
|||||||
option(JSON_BuildTests "Build the unit tests when BUILD_TESTING is enabled." ${JSON_BuildTests_INIT})
|
option(JSON_BuildTests "Build the unit tests when BUILD_TESTING is enabled." ${JSON_BuildTests_INIT})
|
||||||
option(JSON_CI "Enable CI build targets." OFF)
|
option(JSON_CI "Enable CI build targets." OFF)
|
||||||
option(JSON_Diagnostics "Use extended diagnostic messages." OFF)
|
option(JSON_Diagnostics "Use extended diagnostic messages." OFF)
|
||||||
option(JSON_GlobalUDLs "Place use-defined string literals in the global namespace." ON)
|
option(JSON_GlobalUDLs "Place user-defined string literals in the global namespace." ON)
|
||||||
option(JSON_ImplicitConversions "Enable implicit conversions." ON)
|
option(JSON_ImplicitConversions "Enable implicit conversions." ON)
|
||||||
option(JSON_DisableEnumSerialization "Disable default integer enum serialization." OFF)
|
option(JSON_DisableEnumSerialization "Disable default integer enum serialization." OFF)
|
||||||
option(JSON_LegacyDiscardedValueComparison "Enable legacy discarded value comparison." OFF)
|
option(JSON_LegacyDiscardedValueComparison "Enable legacy discarded value comparison." OFF)
|
||||||
@ -96,6 +96,10 @@ if (JSON_Diagnostics)
|
|||||||
message(STATUS "Diagnostics enabled")
|
message(STATUS "Diagnostics enabled")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (NOT JSON_GlobalUDLs)
|
||||||
|
message(STATUS "User-defined string literals are not put in the global namespace")
|
||||||
|
endif()
|
||||||
|
|
||||||
if (JSON_SystemInclude)
|
if (JSON_SystemInclude)
|
||||||
set(NLOHMANN_JSON_SYSTEM_INCLUDE "SYSTEM")
|
set(NLOHMANN_JSON_SYSTEM_INCLUDE "SYSTEM")
|
||||||
endif()
|
endif()
|
||||||
@ -145,6 +149,7 @@ endif()
|
|||||||
CONFIGURE_FILE(
|
CONFIGURE_FILE(
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkg-config.pc.in"
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkg-config.pc.in"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
|
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
|
||||||
|
@ONLY
|
||||||
)
|
)
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2013-2022 Niels Lohmann
|
Copyright (c) 2013-2024 Niels Lohmann
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
4
Makefile
4
Makefile
@ -279,6 +279,6 @@ serve_header:
|
|||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
reuse:
|
reuse:
|
||||||
pipx run reuse addheader --recursive single_include include -tjson --license MIT --copyright "Niels Lohmann <https://nlohmann.me>" --year "2013-2022"
|
pipx run reuse annotate --recursive single_include include -tjson --license MIT --copyright "Niels Lohmann <https://nlohmann.me>" --year "2013-2024" --merge-copyrights
|
||||||
pipx run reuse addheader $(TESTS_SRCS) --style=c -tjson_support --license MIT --copyright "Niels Lohmann <https://nlohmann.me>" --year "2013-2022"
|
pipx run reuse annotate $(TESTS_SRCS) -tjson_support --license MIT --copyright "Niels Lohmann <https://nlohmann.me>" --year "2013-2024" --merge-copyrights
|
||||||
pipx run reuse lint
|
pipx run reuse lint
|
||||||
|
|||||||
32
README.md
32
README.md
@ -52,6 +52,7 @@
|
|||||||
- [Notes](#notes)
|
- [Notes](#notes)
|
||||||
- [Execute unit tests](#execute-unit-tests)
|
- [Execute unit tests](#execute-unit-tests)
|
||||||
|
|
||||||
|
|
||||||
## Design goals
|
## Design goals
|
||||||
|
|
||||||
There are myriads of [JSON](https://json.org) libraries out there, and each may even have its reason to exist. Our class had these design goals:
|
There are myriads of [JSON](https://json.org) libraries out there, and each may even have its reason to exist. Our class had these design goals:
|
||||||
@ -78,6 +79,7 @@ You can sponsor this library at [GitHub Sponsors](https://github.com/sponsors/nl
|
|||||||
### :raising_hand: Priority Sponsor
|
### :raising_hand: Priority Sponsor
|
||||||
|
|
||||||
- [Martti Laine](https://github.com/codeclown)
|
- [Martti Laine](https://github.com/codeclown)
|
||||||
|
- [Paul Harrington](https://github.com/phrrngtn)
|
||||||
|
|
||||||
### :label: Named Sponsors
|
### :label: Named Sponsors
|
||||||
|
|
||||||
@ -90,6 +92,7 @@ You can sponsor this library at [GitHub Sponsors](https://github.com/sponsors/nl
|
|||||||
|
|
||||||
Thanks everyone!
|
Thanks everyone!
|
||||||
|
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
:question: If you have a **question**, please check if it is already answered in the [**FAQ**](https://json.nlohmann.me/home/faq/) or the [**Q&A**](https://github.com/nlohmann/json/discussions/categories/q-a) section. If not, please [**ask a new question**](https://github.com/nlohmann/json/discussions/new) there.
|
:question: If you have a **question**, please check if it is already answered in the [**FAQ**](https://json.nlohmann.me/home/faq/) or the [**Q&A**](https://github.com/nlohmann/json/discussions/categories/q-a) section. If not, please [**ask a new question**](https://github.com/nlohmann/json/discussions/new) there.
|
||||||
@ -102,6 +105,7 @@ Thanks everyone!
|
|||||||
|
|
||||||
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.
|
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
|
||||||
|
|
||||||
Here are some examples to give you an idea how to use the class.
|
Here are some examples to give you an idea how to use the class.
|
||||||
@ -1115,7 +1119,7 @@ Though it's 2024 already, the support for C++11 is still a bit sparse. Currently
|
|||||||
|
|
||||||
- GCC 4.8 - 14.2 (and possibly later)
|
- GCC 4.8 - 14.2 (and possibly later)
|
||||||
- Clang 3.4 - 20.0 (and possibly later)
|
- Clang 3.4 - 20.0 (and possibly later)
|
||||||
- Apple Clang 9.1 - 16.0 (and possibly later)
|
- Apple Clang 9.1 - 16.1 (and possibly later)
|
||||||
- Intel C++ Compiler 17.0.2 (and possibly later)
|
- Intel C++ Compiler 17.0.2 (and possibly later)
|
||||||
- Nvidia CUDA Compiler 11.0.221 (and possibly later)
|
- Nvidia CUDA Compiler 11.0.221 (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)
|
||||||
@ -1146,13 +1150,7 @@ The following compilers are currently used in continuous integration at [AppVeyo
|
|||||||
|
|
||||||
| Compiler | Operating System | CI Provider |
|
| Compiler | Operating System | CI Provider |
|
||||||
|--------------------------------------------------------------------------------------------------------|--------------------|----------------|
|
|--------------------------------------------------------------------------------------------------------|--------------------|----------------|
|
||||||
| Apple Clang 13.0.0 (clang-1300.0.29.3); Xcode 13.1 | macOS 12.7.6 | GitHub Actions |
|
| Apple Clang 14.0.0 (clang-1400.0.29.202); Xcode 14.1 | macOS 13.7 | GitHub Actions |
|
||||||
| Apple Clang 13.0.0 (clang-1300.0.29.30); Xcode 13.2.1 | macOS 12.7.6 | GitHub Actions |
|
|
||||||
| Apple Clang 13.1.6 (clang-1316.0.21.2.3); Xcode 13.3.1 | macOS 12.7.6 | GitHub Actions |
|
|
||||||
| Apple Clang 13.1.6 (clang-1316.0.21.2.5); Xcode 13.4.1 | macOS 12.7.6 | GitHub Actions |
|
|
||||||
| Apple Clang 14.0.0 (clang-1400.0.29.102); Xcode 14.0 | macOS 12.7.6 | GitHub Actions |
|
|
||||||
| Apple Clang 14.0.0 (clang-1400.0.29.102); Xcode 14.0.1 | macOS 12.7.6 | GitHub Actions |
|
|
||||||
| Apple Clang 14.0.0 (clang-1400.0.29.202); Xcode 14.1 | macOS 12.7.6 | GitHub Actions |
|
|
||||||
| Apple Clang 14.0.0 (clang-1400.0.29.202); Xcode 14.2 | macOS 13.7 | GitHub Actions |
|
| Apple Clang 14.0.0 (clang-1400.0.29.202); Xcode 14.2 | macOS 13.7 | GitHub Actions |
|
||||||
| Apple Clang 14.0.3 (clang-1403.0.22.14.1); Xcode 14.3 | macOS 13.7 | GitHub Actions |
|
| Apple Clang 14.0.3 (clang-1403.0.22.14.1); Xcode 14.3 | macOS 13.7 | GitHub Actions |
|
||||||
| Apple Clang 14.0.3 (clang-1403.0.22.14.1); Xcode 14.3.1 | macOS 13.7.1 | GitHub Actions |
|
| Apple Clang 14.0.3 (clang-1403.0.22.14.1); Xcode 14.3.1 | macOS 13.7.1 | GitHub Actions |
|
||||||
@ -1393,11 +1391,11 @@ json = dependency('nlohmann_json', required: true)
|
|||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
<img align="right" src="https://opensource.org/trademarks/opensource/OSI-Approved-License-100x137.png">
|
<img align="right" src="https://149753425.v2.pressablecdn.com/wp-content/uploads/2009/06/OSIApproved_100X125.png" alt="OSI approved license">
|
||||||
|
|
||||||
The class is licensed under the [MIT License](https://opensource.org/licenses/MIT):
|
The class is licensed under the [MIT License](https://opensource.org/licenses/MIT):
|
||||||
|
|
||||||
Copyright © 2013-2022 [Niels Lohmann](https://nlohmann.me)
|
Copyright © 2013-2024 [Niels Lohmann](https://nlohmann.me)
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
@ -1407,13 +1405,19 @@ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR I
|
|||||||
|
|
||||||
* * *
|
* * *
|
||||||
|
|
||||||
The class contains the UTF-8 Decoder from Bjoern Hoehrmann which is licensed under the [MIT License](https://opensource.org/licenses/MIT) (see above). Copyright © 2008-2009 [Björn Hoehrmann](https://bjoern.hoehrmann.de/) <bjoern@hoehrmann.de>
|
- The class contains the UTF-8 Decoder from Bjoern Hoehrmann which is licensed under the [MIT License](https://opensource.org/licenses/MIT) (see above). Copyright © 2008-2009 [Björn Hoehrmann](https://bjoern.hoehrmann.de/) <bjoern@hoehrmann.de>
|
||||||
|
- The class contains a slightly modified version of the Grisu2 algorithm from Florian Loitsch which is licensed under the [MIT License](https://opensource.org/licenses/MIT) (see above). Copyright © 2009 [Florian Loitsch](https://florian.loitsch.com/)
|
||||||
|
- The class contains a copy of [Hedley](https://nemequ.github.io/hedley/) from Evan Nemerson which is licensed as [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/).
|
||||||
|
- The class contains parts of [Google Abseil](https://github.com/abseil/abseil-cpp) which is licensed under the [Apache 2.0 License](https://opensource.org/licenses/Apache-2.0).
|
||||||
|
|
||||||
The class contains a slightly modified version of the Grisu2 algorithm from Florian Loitsch which is licensed under the [MIT License](https://opensource.org/licenses/MIT) (see above). Copyright © 2009 [Florian Loitsch](https://florian.loitsch.com/)
|
<img align="right" src="https://git.fsfe.org/reuse/reuse-ci/raw/branch/master/reuse-horizontal.png" alt="REUSE Software">
|
||||||
|
|
||||||
The class contains a copy of [Hedley](https://nemequ.github.io/hedley/) from Evan Nemerson which is licensed as [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/).
|
The library is compliant to version 3.3 of the [**REUSE specification**](https://reuse.software):
|
||||||
|
|
||||||
The class contains parts of [Google Abseil](https://github.com/abseil/abseil-cpp) which is licensed under the [Apache 2.0 License](https://opensource.org/licenses/Apache-2.0).
|
- Every source file contains an SPDX copyright header.
|
||||||
|
- The full text of all licenses used in the repository can be found in the `LICENSES` folder.
|
||||||
|
- File `.reuse/dep5` contains an overview of all files' copyrights and licenses.
|
||||||
|
- Run `pipx run reuse lint` to verify the project's REUSE compliance and `pipx run reuse spdx` to generate a SPDX SBOM.
|
||||||
|
|
||||||
## Contact
|
## Contact
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@ execute_process(COMMAND ${CLANG_TOOL} --version OUTPUT_VARIABLE CLANG_TOOL_VERSI
|
|||||||
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})")
|
||||||
|
|
||||||
find_program(CLANG_TIDY_TOOL NAMES clang-tidy-17 clang-tidy-16 clang-tidy-15 clang-tidy-14 clang-tidy-13 clang-tidy-12 clang-tidy-11 clang-tidy)
|
find_program(CLANG_TIDY_TOOL NAMES clang-tidy-20 clang-tidy-19 clang-tidy-18 clang-tidy-17 clang-tidy-16 clang-tidy-15 clang-tidy-14 clang-tidy-13 clang-tidy-12 clang-tidy-11 clang-tidy)
|
||||||
execute_process(COMMAND ${CLANG_TIDY_TOOL} --version OUTPUT_VARIABLE CLANG_TIDY_TOOL_VERSION ERROR_VARIABLE CLANG_TIDY_TOOL_VERSION)
|
execute_process(COMMAND ${CLANG_TIDY_TOOL} --version OUTPUT_VARIABLE CLANG_TIDY_TOOL_VERSION ERROR_VARIABLE CLANG_TIDY_TOOL_VERSION)
|
||||||
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" CLANG_TIDY_TOOL_VERSION "${CLANG_TIDY_TOOL_VERSION}")
|
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" CLANG_TIDY_TOOL_VERSION "${CLANG_TIDY_TOOL_VERSION}")
|
||||||
message(STATUS "🔖 Clang-Tidy ${CLANG_TIDY_TOOL_VERSION} (${CLANG_TIDY_TOOL})")
|
message(STATUS "🔖 Clang-Tidy ${CLANG_TIDY_TOOL_VERSION} (${CLANG_TIDY_TOOL})")
|
||||||
@ -30,12 +30,12 @@ execute_process(COMMAND ${CPPCHECK_TOOL} --version OUTPUT_VARIABLE CPPCHECK_TOOL
|
|||||||
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" CPPCHECK_TOOL_VERSION "${CPPCHECK_TOOL_VERSION}")
|
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" CPPCHECK_TOOL_VERSION "${CPPCHECK_TOOL_VERSION}")
|
||||||
message(STATUS "🔖 Cppcheck ${CPPCHECK_TOOL_VERSION} (${CPPCHECK_TOOL})")
|
message(STATUS "🔖 Cppcheck ${CPPCHECK_TOOL_VERSION} (${CPPCHECK_TOOL})")
|
||||||
|
|
||||||
find_program(GCC_TOOL NAMES g++-latest g++-HEAD g++-13 g++-12 g++-11 g++-10)
|
find_program(GCC_TOOL NAMES g++-latest g++-HEAD g++ g++-15 g++-14 g++-13 g++-12 g++-11 g++-10)
|
||||||
execute_process(COMMAND ${GCC_TOOL} --version OUTPUT_VARIABLE GCC_TOOL_VERSION ERROR_VARIABLE GCC_TOOL_VERSION)
|
execute_process(COMMAND ${GCC_TOOL} --version OUTPUT_VARIABLE GCC_TOOL_VERSION ERROR_VARIABLE GCC_TOOL_VERSION)
|
||||||
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" GCC_TOOL_VERSION "${GCC_TOOL_VERSION}")
|
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" GCC_TOOL_VERSION "${GCC_TOOL_VERSION}")
|
||||||
message(STATUS "🔖 GCC ${GCC_TOOL_VERSION} (${GCC_TOOL})")
|
message(STATUS "🔖 GCC ${GCC_TOOL_VERSION} (${GCC_TOOL})")
|
||||||
|
|
||||||
find_program(GCOV_TOOL NAMES gcov-HEAD gcov-11 gcov-10 gcov)
|
find_program(GCOV_TOOL NAMES gcov-HEAD gcov-15 gcov-14 gcov-13 gcov-12 gcov-11 gcov-10 gcov)
|
||||||
execute_process(COMMAND ${GCOV_TOOL} --version OUTPUT_VARIABLE GCOV_TOOL_VERSION ERROR_VARIABLE GCOV_TOOL_VERSION)
|
execute_process(COMMAND ${GCOV_TOOL} --version OUTPUT_VARIABLE GCOV_TOOL_VERSION ERROR_VARIABLE GCOV_TOOL_VERSION)
|
||||||
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" GCOV_TOOL_VERSION "${GCOV_TOOL_VERSION}")
|
string(REGEX MATCH "[0-9]+(\\.[0-9]+)+" GCOV_TOOL_VERSION "${GCOV_TOOL_VERSION}")
|
||||||
message(STATUS "🔖 GCOV ${GCOV_TOOL_VERSION} (${GCOV_TOOL})")
|
message(STATUS "🔖 GCOV ${GCOV_TOOL_VERSION} (${GCOV_TOOL})")
|
||||||
@ -96,8 +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-unsafe-buffer-usage Otherwise Doctest would not compile.
|
# -Wno-unsafe-buffer-usage Otherwise Doctest would not compile.
|
||||||
# -Wno-weak-vtables The library is header-only.
|
|
||||||
# -Wreserved-identifier See https://github.com/onqtam/doctest/issues/536.
|
|
||||||
|
|
||||||
set(CLANG_CXXFLAGS
|
set(CLANG_CXXFLAGS
|
||||||
-Werror
|
-Werror
|
||||||
@ -109,16 +107,15 @@ set(CLANG_CXXFLAGS
|
|||||||
-Wno-padded
|
-Wno-padded
|
||||||
-Wno-covered-switch-default
|
-Wno-covered-switch-default
|
||||||
-Wno-unsafe-buffer-usage
|
-Wno-unsafe-buffer-usage
|
||||||
-Wno-weak-vtables
|
|
||||||
-Wno-reserved-identifier
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Warning flags determined for GCC 13.0 (experimental) with https://github.com/nlohmann/gcc_flags:
|
# Warning flags determined for GCC 14.2.0 with https://github.com/nlohmann/gcc_flags:
|
||||||
# Ignored GCC warnings:
|
# Ignored GCC warnings:
|
||||||
# -Wno-abi-tag We do not care about ABI tags.
|
# -Wno-abi-tag We do not care about ABI tags.
|
||||||
# -Wno-aggregate-return The library uses aggregate returns.
|
# -Wno-aggregate-return The library uses aggregate returns.
|
||||||
# -Wno-long-long The library uses the long long type to interface with system functions.
|
# -Wno-long-long The library uses the long long type to interface with system functions.
|
||||||
# -Wno-namespaces The library uses namespaces.
|
# -Wno-namespaces The library uses namespaces.
|
||||||
|
# -Wno-nrvo Doctest triggers this warning.
|
||||||
# -Wno-padded We do not care about padding warnings.
|
# -Wno-padded We do not care about padding warnings.
|
||||||
# -Wno-system-headers We do not care about warnings in system headers.
|
# -Wno-system-headers We do not care about warnings in system headers.
|
||||||
# -Wno-templates The library uses templates.
|
# -Wno-templates The library uses templates.
|
||||||
@ -137,28 +134,49 @@ set(GCC_CXXFLAGS
|
|||||||
-Waggressive-loop-optimizations
|
-Waggressive-loop-optimizations
|
||||||
-Waligned-new=all
|
-Waligned-new=all
|
||||||
-Wall
|
-Wall
|
||||||
|
-Walloc-size
|
||||||
-Walloc-zero
|
-Walloc-zero
|
||||||
-Walloca
|
-Walloca
|
||||||
|
-Wanalyzer-allocation-size
|
||||||
|
-Wanalyzer-deref-before-check
|
||||||
-Wanalyzer-double-fclose
|
-Wanalyzer-double-fclose
|
||||||
-Wanalyzer-double-free
|
-Wanalyzer-double-free
|
||||||
-Wanalyzer-exposure-through-output-file
|
-Wanalyzer-exposure-through-output-file
|
||||||
|
-Wanalyzer-exposure-through-uninit-copy
|
||||||
|
-Wanalyzer-fd-access-mode-mismatch
|
||||||
|
-Wanalyzer-fd-double-close
|
||||||
|
-Wanalyzer-fd-leak
|
||||||
|
-Wanalyzer-fd-phase-mismatch
|
||||||
|
-Wanalyzer-fd-type-mismatch
|
||||||
|
-Wanalyzer-fd-use-after-close
|
||||||
|
-Wanalyzer-fd-use-without-check
|
||||||
-Wanalyzer-file-leak
|
-Wanalyzer-file-leak
|
||||||
-Wanalyzer-free-of-non-heap
|
-Wanalyzer-free-of-non-heap
|
||||||
|
-Wanalyzer-imprecise-fp-arithmetic
|
||||||
|
-Wanalyzer-infinite-loop
|
||||||
|
-Wanalyzer-infinite-recursion
|
||||||
|
-Wanalyzer-jump-through-null
|
||||||
-Wanalyzer-malloc-leak
|
-Wanalyzer-malloc-leak
|
||||||
-Wanalyzer-mismatching-deallocation
|
-Wanalyzer-mismatching-deallocation
|
||||||
-Wanalyzer-null-argument
|
-Wanalyzer-null-argument
|
||||||
-Wanalyzer-null-dereference
|
-Wanalyzer-null-dereference
|
||||||
|
-Wanalyzer-out-of-bounds
|
||||||
|
-Wanalyzer-overlapping-buffers
|
||||||
-Wanalyzer-possible-null-argument
|
-Wanalyzer-possible-null-argument
|
||||||
-Wanalyzer-possible-null-dereference
|
-Wanalyzer-possible-null-dereference
|
||||||
|
-Wanalyzer-putenv-of-auto-var
|
||||||
-Wanalyzer-shift-count-negative
|
-Wanalyzer-shift-count-negative
|
||||||
-Wanalyzer-shift-count-overflow
|
-Wanalyzer-shift-count-overflow
|
||||||
-Wanalyzer-stale-setjmp-buffer
|
-Wanalyzer-stale-setjmp-buffer
|
||||||
|
-Wanalyzer-symbol-too-complex
|
||||||
-Wanalyzer-tainted-allocation-size
|
-Wanalyzer-tainted-allocation-size
|
||||||
-Wanalyzer-tainted-array-index
|
-Wanalyzer-tainted-array-index
|
||||||
|
-Wanalyzer-tainted-assertion
|
||||||
-Wanalyzer-tainted-divisor
|
-Wanalyzer-tainted-divisor
|
||||||
-Wanalyzer-tainted-offset
|
-Wanalyzer-tainted-offset
|
||||||
-Wanalyzer-tainted-size
|
-Wanalyzer-tainted-size
|
||||||
-Wanalyzer-too-complex
|
-Wanalyzer-too-complex
|
||||||
|
-Wanalyzer-undefined-behavior-strtok
|
||||||
-Wanalyzer-unsafe-call-within-signal-handler
|
-Wanalyzer-unsafe-call-within-signal-handler
|
||||||
-Wanalyzer-use-after-free
|
-Wanalyzer-use-after-free
|
||||||
-Wanalyzer-use-of-pointer-in-stale-stack-frame
|
-Wanalyzer-use-of-pointer-in-stale-stack-frame
|
||||||
@ -191,13 +209,17 @@ set(GCC_CXXFLAGS
|
|||||||
-Wc++20-compat
|
-Wc++20-compat
|
||||||
-Wc++20-extensions
|
-Wc++20-extensions
|
||||||
-Wc++23-extensions
|
-Wc++23-extensions
|
||||||
|
-Wc++26-extensions
|
||||||
-Wc++2a-compat
|
-Wc++2a-compat
|
||||||
|
-Wcalloc-transposed-args
|
||||||
-Wcannot-profile
|
-Wcannot-profile
|
||||||
-Wcast-align
|
-Wcast-align
|
||||||
-Wcast-align=strict
|
-Wcast-align=strict
|
||||||
-Wcast-function-type
|
-Wcast-function-type
|
||||||
-Wcast-qual
|
-Wcast-qual
|
||||||
|
-Wcast-user-defined
|
||||||
-Wcatch-value=3
|
-Wcatch-value=3
|
||||||
|
-Wchanges-meaning
|
||||||
-Wchar-subscripts
|
-Wchar-subscripts
|
||||||
-Wclass-conversion
|
-Wclass-conversion
|
||||||
-Wclass-memaccess
|
-Wclass-memaccess
|
||||||
@ -205,16 +227,19 @@ set(GCC_CXXFLAGS
|
|||||||
-Wcomma-subscript
|
-Wcomma-subscript
|
||||||
-Wcomment
|
-Wcomment
|
||||||
-Wcomments
|
-Wcomments
|
||||||
|
-Wcomplain-wrong-lang
|
||||||
-Wconditionally-supported
|
-Wconditionally-supported
|
||||||
-Wconversion
|
-Wconversion
|
||||||
-Wconversion-null
|
-Wconversion-null
|
||||||
-Wcoverage-invalid-line-number
|
-Wcoverage-invalid-line-number
|
||||||
-Wcoverage-mismatch
|
-Wcoverage-mismatch
|
||||||
|
-Wcoverage-too-many-conditions
|
||||||
-Wcpp
|
-Wcpp
|
||||||
-Wctad-maybe-unsupported
|
-Wctad-maybe-unsupported
|
||||||
-Wctor-dtor-privacy
|
-Wctor-dtor-privacy
|
||||||
-Wdangling-else
|
-Wdangling-else
|
||||||
-Wdangling-pointer=2
|
-Wdangling-pointer=2
|
||||||
|
-Wdangling-reference
|
||||||
-Wdate-time
|
-Wdate-time
|
||||||
-Wdelete-incomplete
|
-Wdelete-incomplete
|
||||||
-Wdelete-non-virtual-dtor
|
-Wdelete-non-virtual-dtor
|
||||||
@ -230,6 +255,7 @@ set(GCC_CXXFLAGS
|
|||||||
-Wduplicated-branches
|
-Wduplicated-branches
|
||||||
-Wduplicated-cond
|
-Wduplicated-cond
|
||||||
-Weffc++
|
-Weffc++
|
||||||
|
-Welaborated-enum-base
|
||||||
-Wempty-body
|
-Wempty-body
|
||||||
-Wendif-labels
|
-Wendif-labels
|
||||||
-Wenum-compare
|
-Wenum-compare
|
||||||
@ -238,8 +264,15 @@ set(GCC_CXXFLAGS
|
|||||||
-Wexpansion-to-defined
|
-Wexpansion-to-defined
|
||||||
-Wextra
|
-Wextra
|
||||||
-Wextra-semi
|
-Wextra-semi
|
||||||
|
-Wflex-array-member-not-at-end
|
||||||
-Wfloat-conversion
|
-Wfloat-conversion
|
||||||
-Wfloat-equal
|
-Wfloat-equal
|
||||||
|
-Wformat -Wformat-contains-nul
|
||||||
|
-Wformat -Wformat-extra-args
|
||||||
|
-Wformat -Wformat-nonliteral
|
||||||
|
-Wformat -Wformat-security
|
||||||
|
-Wformat -Wformat-y2k
|
||||||
|
-Wformat -Wformat-zero-length
|
||||||
-Wformat-diag
|
-Wformat-diag
|
||||||
-Wformat-overflow=2
|
-Wformat-overflow=2
|
||||||
-Wformat-signedness
|
-Wformat-signedness
|
||||||
@ -247,6 +280,8 @@ set(GCC_CXXFLAGS
|
|||||||
-Wformat=2
|
-Wformat=2
|
||||||
-Wframe-address
|
-Wframe-address
|
||||||
-Wfree-nonheap-object
|
-Wfree-nonheap-object
|
||||||
|
-Wglobal-module
|
||||||
|
-Whardened
|
||||||
-Whsa
|
-Whsa
|
||||||
-Wif-not-aligned
|
-Wif-not-aligned
|
||||||
-Wignored-attributes
|
-Wignored-attributes
|
||||||
@ -261,10 +296,12 @@ set(GCC_CXXFLAGS
|
|||||||
-Wint-in-bool-context
|
-Wint-in-bool-context
|
||||||
-Wint-to-pointer-cast
|
-Wint-to-pointer-cast
|
||||||
-Winterference-size
|
-Winterference-size
|
||||||
|
-Winvalid-constexpr
|
||||||
-Winvalid-imported-macros
|
-Winvalid-imported-macros
|
||||||
-Winvalid-memory-model
|
-Winvalid-memory-model
|
||||||
-Winvalid-offsetof
|
-Winvalid-offsetof
|
||||||
-Winvalid-pch
|
-Winvalid-pch
|
||||||
|
-Winvalid-utf8
|
||||||
-Wliteral-suffix
|
-Wliteral-suffix
|
||||||
-Wlogical-not-parentheses
|
-Wlogical-not-parentheses
|
||||||
-Wlogical-op
|
-Wlogical-op
|
||||||
@ -298,14 +335,16 @@ set(GCC_CXXFLAGS
|
|||||||
-Wnonnull
|
-Wnonnull
|
||||||
-Wnonnull-compare
|
-Wnonnull-compare
|
||||||
-Wnormalized=nfkc
|
-Wnormalized=nfkc
|
||||||
|
-Wno-nrvo
|
||||||
-Wnull-dereference
|
-Wnull-dereference
|
||||||
-Wodr
|
-Wodr
|
||||||
-Wold-style-cast
|
-Wold-style-cast
|
||||||
-Wopenacc-parallelism
|
-Wopenacc-parallelism
|
||||||
|
-Wopenmp
|
||||||
-Wopenmp-simd
|
-Wopenmp-simd
|
||||||
-Woverflow
|
-Woverflow
|
||||||
-Woverlength-strings
|
-Woverlength-strings
|
||||||
-Woverloaded-virtual
|
-Woverloaded-virtual=2
|
||||||
-Wpacked
|
-Wpacked
|
||||||
-Wpacked-bitfield-compat
|
-Wpacked-bitfield-compat
|
||||||
-Wpacked-not-aligned
|
-Wpacked-not-aligned
|
||||||
@ -330,6 +369,7 @@ set(GCC_CXXFLAGS
|
|||||||
-Wreturn-local-addr
|
-Wreturn-local-addr
|
||||||
-Wreturn-type
|
-Wreturn-type
|
||||||
-Wscalar-storage-order
|
-Wscalar-storage-order
|
||||||
|
-Wself-move
|
||||||
-Wsequence-point
|
-Wsequence-point
|
||||||
-Wshadow=compatible-local
|
-Wshadow=compatible-local
|
||||||
-Wshadow=global
|
-Wshadow=global
|
||||||
@ -349,7 +389,7 @@ set(GCC_CXXFLAGS
|
|||||||
-Wstack-protector
|
-Wstack-protector
|
||||||
-Wstrict-aliasing=3
|
-Wstrict-aliasing=3
|
||||||
-Wstrict-null-sentinel
|
-Wstrict-null-sentinel
|
||||||
-Wno-strict-overflow
|
-Wstrict-overflow
|
||||||
-Wstring-compare
|
-Wstring-compare
|
||||||
-Wstringop-overflow=4
|
-Wstringop-overflow=4
|
||||||
-Wstringop-overread
|
-Wstringop-overread
|
||||||
@ -361,6 +401,7 @@ set(GCC_CXXFLAGS
|
|||||||
-Wsuggest-attribute=malloc
|
-Wsuggest-attribute=malloc
|
||||||
-Wsuggest-attribute=noreturn
|
-Wsuggest-attribute=noreturn
|
||||||
-Wsuggest-attribute=pure
|
-Wsuggest-attribute=pure
|
||||||
|
-Wsuggest-attribute=returns_nonnull
|
||||||
-Wsuggest-final-methods
|
-Wsuggest-final-methods
|
||||||
-Wsuggest-final-types
|
-Wsuggest-final-types
|
||||||
-Wsuggest-override
|
-Wsuggest-override
|
||||||
@ -382,6 +423,7 @@ set(GCC_CXXFLAGS
|
|||||||
-Wtsan
|
-Wtsan
|
||||||
-Wtype-limits
|
-Wtype-limits
|
||||||
-Wundef
|
-Wundef
|
||||||
|
-Wunicode
|
||||||
-Wuninitialized
|
-Wuninitialized
|
||||||
-Wunknown-pragmas
|
-Wunknown-pragmas
|
||||||
-Wunreachable-code
|
-Wunreachable-code
|
||||||
@ -411,6 +453,7 @@ set(GCC_CXXFLAGS
|
|||||||
-Wvolatile
|
-Wvolatile
|
||||||
-Wvolatile-register-var
|
-Wvolatile-register-var
|
||||||
-Wwrite-strings
|
-Wwrite-strings
|
||||||
|
-Wxor-used-as-pow
|
||||||
-Wzero-as-null-pointer-constant
|
-Wzero-as-null-pointer-constant
|
||||||
-Wzero-length-bounds
|
-Wzero-length-bounds
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
Name: ${PROJECT_NAME}
|
prefix=@CMAKE_INSTALL_PREFIX@
|
||||||
|
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
|
||||||
|
|
||||||
|
Name: @PROJECT_NAME@
|
||||||
Description: JSON for Modern C++
|
Description: JSON for Modern C++
|
||||||
Version: ${PROJECT_VERSION}
|
Version: @PROJECT_VERSION@
|
||||||
Cflags: -I${CMAKE_INSTALL_FULL_INCLUDEDIR}
|
Cflags: -I${includedir}
|
||||||
|
|||||||
@ -35,7 +35,35 @@ Constant.
|
|||||||
|
|
||||||
!!! danger "Undefined behavior"
|
!!! danger "Undefined behavior"
|
||||||
|
|
||||||
Writing data to the pointee of the result yields an undefined state.
|
The pointer becomes invalid if the underlying JSON object changes.
|
||||||
|
|
||||||
|
Consider the following example code where the pointer `ptr` changes after the array is resized. As a result, reading or writing to `ptr` after the array change would be undefined behavior. The address of the first array element changes, because the underlying `std::vector` is resized after adding a fifth element.
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
#include <iostream>
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
|
||||||
|
using json = nlohmann::json;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
json j = {1, 2, 3, 4};
|
||||||
|
auto* ptr = j[0].get_ptr<std::int64_t*>();
|
||||||
|
std::cout << "value at " << ptr << " is " << *ptr << std::endl;
|
||||||
|
|
||||||
|
j.push_back(5);
|
||||||
|
|
||||||
|
ptr = j[0].get_ptr<std::int64_t*>();
|
||||||
|
std::cout << "value at " << ptr << " is " << *ptr << std::endl;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Output:
|
||||||
|
|
||||||
|
```
|
||||||
|
value at 0x6000012fc1c8 is 1
|
||||||
|
value at 0x6000029fc088 is 1
|
||||||
|
```
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
@ -54,6 +82,10 @@ Constant.
|
|||||||
--8<-- "examples/get_ptr.output"
|
--8<-- "examples/get_ptr.output"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## See also
|
||||||
|
|
||||||
|
- [get_ref()](get_ref.md) get a reference value
|
||||||
|
|
||||||
## Version history
|
## Version history
|
||||||
|
|
||||||
- Added in version 1.0.0.
|
- Added in version 1.0.0.
|
||||||
|
|||||||
@ -40,7 +40,7 @@ Constant.
|
|||||||
|
|
||||||
!!! danger "Undefined behavior"
|
!!! danger "Undefined behavior"
|
||||||
|
|
||||||
Writing data to the referee of the result yields an undefined state.
|
The reference becomes invalid if the underlying JSON object changes.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
@ -58,6 +58,10 @@ Constant.
|
|||||||
--8<-- "examples/get_ref.output"
|
--8<-- "examples/get_ref.output"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## See also
|
||||||
|
|
||||||
|
- [get_ptr()](get_ptr.md) get a pointer value
|
||||||
|
|
||||||
## Version history
|
## Version history
|
||||||
|
|
||||||
- Added in version 1.1.0.
|
- Added in version 1.1.0.
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
# License
|
# License
|
||||||
|
|
||||||
<img align="right" src="https://opensource.org/trademarks/opensource/OSI-Approved-License-100x137.png">
|
<img align="right" src="https://149753425.v2.pressablecdn.com/wp-content/uploads/2009/06/OSIApproved_100X125.png">
|
||||||
|
|
||||||
The class is licensed under the [MIT License](https://opensource.org/licenses/MIT):
|
The class is licensed under the [MIT License](https://opensource.org/licenses/MIT):
|
||||||
|
|
||||||
Copyright © 2013-2022 [Niels Lohmann](https://nlohmann.me)
|
Copyright © 2013-2024 [Niels Lohmann](https://nlohmann.me)
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2009 Florian Loitsch <https://florian.loitsch.com/>
|
// SPDX-FileCopyrightText: 2009 Florian Loitsch <https://florian.loitsch.com/>
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
@ -25,6 +25,18 @@
|
|||||||
#include <nlohmann/detail/meta/type_traits.hpp>
|
#include <nlohmann/detail/meta/type_traits.hpp>
|
||||||
#include <nlohmann/detail/string_concat.hpp>
|
#include <nlohmann/detail/string_concat.hpp>
|
||||||
|
|
||||||
|
// With -Wweak-vtables, Clang will complain about the exception classes as they
|
||||||
|
// have no out-of-line virtual method definitions and their vtable will be
|
||||||
|
// emitted in every translation unit. This issue cannot be fixed with a
|
||||||
|
// header-only library as there is no implementation file to move these
|
||||||
|
// functions to. As a result, we suppress this warning here to avoid client
|
||||||
|
// code to stumble over this. See https://github.com/nlohmann/json/issues/4087
|
||||||
|
// for a discussion.
|
||||||
|
#if defined(__clang__)
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Wweak-vtables"
|
||||||
|
#endif
|
||||||
|
|
||||||
NLOHMANN_JSON_NAMESPACE_BEGIN
|
NLOHMANN_JSON_NAMESPACE_BEGIN
|
||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
@ -255,3 +267,7 @@ class other_error : public exception
|
|||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
NLOHMANN_JSON_NAMESPACE_END
|
NLOHMANN_JSON_NAMESPACE_END
|
||||||
|
|
||||||
|
#if defined(__clang__)
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
#endif
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
@ -20,6 +20,9 @@
|
|||||||
#include <string> // char_traits, string
|
#include <string> // char_traits, string
|
||||||
#include <utility> // make_pair, move
|
#include <utility> // make_pair, move
|
||||||
#include <vector> // vector
|
#include <vector> // vector
|
||||||
|
#ifdef __cpp_lib_byteswap
|
||||||
|
#include <bit> //byteswap
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <nlohmann/detail/exceptions.hpp>
|
#include <nlohmann/detail/exceptions.hpp>
|
||||||
#include <nlohmann/detail/input/input_adapters.hpp>
|
#include <nlohmann/detail/input/input_adapters.hpp>
|
||||||
@ -2754,6 +2757,29 @@ class binary_reader
|
|||||||
return current = ia.get_character();
|
return current = ia.get_character();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@brief get_to read into a primitive type
|
||||||
|
|
||||||
|
This function provides the interface to the used input adapter. It does
|
||||||
|
not throw in case the input reached EOF, but returns false instead
|
||||||
|
|
||||||
|
@return bool, whether the read was successful
|
||||||
|
*/
|
||||||
|
template<class T>
|
||||||
|
bool get_to(T& dest, const input_format_t format, const char* context)
|
||||||
|
{
|
||||||
|
auto new_chars_read = ia.get_elements(&dest);
|
||||||
|
chars_read += new_chars_read;
|
||||||
|
if (JSON_HEDLEY_UNLIKELY(new_chars_read < sizeof(T)))
|
||||||
|
{
|
||||||
|
// in case of failure, advance position by 1 to report failing location
|
||||||
|
++chars_read;
|
||||||
|
sax->parse_error(chars_read, "<end of file>", parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), nullptr));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@return character read from the input after ignoring all 'N' entries
|
@return character read from the input after ignoring all 'N' entries
|
||||||
*/
|
*/
|
||||||
@ -2768,6 +2794,28 @@ class binary_reader
|
|||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class NumberType>
|
||||||
|
static void byte_swap(NumberType& number)
|
||||||
|
{
|
||||||
|
constexpr std::size_t sz = sizeof(number);
|
||||||
|
#ifdef __cpp_lib_byteswap
|
||||||
|
if constexpr (sz == 1)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if constexpr(std::is_integral_v<NumberType>)
|
||||||
|
{
|
||||||
|
number = std::byteswap(number);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
auto* ptr = reinterpret_cast<std::uint8_t*>(&number);
|
||||||
|
for (std::size_t i = 0; i < sz / 2; ++i)
|
||||||
|
{
|
||||||
|
std::swap(ptr[i], ptr[sz - i - 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@brief read a number from the input
|
@brief read a number from the input
|
||||||
|
|
||||||
@ -2786,29 +2834,16 @@ class binary_reader
|
|||||||
template<typename NumberType, bool InputIsLittleEndian = false>
|
template<typename NumberType, bool InputIsLittleEndian = false>
|
||||||
bool get_number(const input_format_t format, NumberType& result)
|
bool get_number(const input_format_t format, NumberType& result)
|
||||||
{
|
{
|
||||||
// step 1: read input into array with system's byte order
|
// read in the original format
|
||||||
std::array<std::uint8_t, sizeof(NumberType)> vec{};
|
|
||||||
for (std::size_t i = 0; i < sizeof(NumberType); ++i)
|
if (JSON_HEDLEY_UNLIKELY(!get_to(result, format, "number")))
|
||||||
{
|
{
|
||||||
get();
|
return false;
|
||||||
if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "number")))
|
}
|
||||||
{
|
if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata))
|
||||||
return false;
|
{
|
||||||
}
|
byte_swap(result);
|
||||||
|
|
||||||
// reverse byte order prior to conversion if necessary
|
|
||||||
if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata))
|
|
||||||
{
|
|
||||||
vec[sizeof(NumberType) - i - 1] = static_cast<std::uint8_t>(current);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
vec[i] = static_cast<std::uint8_t>(current); // LCOV_EXCL_LINE
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// step 2: convert array into number of type T and return
|
|
||||||
std::memcpy(&result, vec.data(), sizeof(NumberType));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
@ -23,6 +23,7 @@
|
|||||||
#include <istream> // istream
|
#include <istream> // istream
|
||||||
#endif // JSON_NO_IO
|
#endif // JSON_NO_IO
|
||||||
|
|
||||||
|
#include <nlohmann/detail/exceptions.hpp>
|
||||||
#include <nlohmann/detail/iterators/iterator_traits.hpp>
|
#include <nlohmann/detail/iterators/iterator_traits.hpp>
|
||||||
#include <nlohmann/detail/macro_scope.hpp>
|
#include <nlohmann/detail/macro_scope.hpp>
|
||||||
#include <nlohmann/detail/meta/type_traits.hpp>
|
#include <nlohmann/detail/meta/type_traits.hpp>
|
||||||
@ -67,6 +68,13 @@ class file_input_adapter
|
|||||||
return std::fgetc(m_file);
|
return std::fgetc(m_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// returns the number of characters successfully read
|
||||||
|
template<class T>
|
||||||
|
std::size_t get_elements(T* dest, std::size_t count = 1)
|
||||||
|
{
|
||||||
|
return fread(dest, 1, sizeof(T) * count, m_file);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// the file pointer to read from
|
/// the file pointer to read from
|
||||||
std::FILE* m_file;
|
std::FILE* m_file;
|
||||||
@ -126,6 +134,17 @@ class input_stream_adapter
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
std::size_t get_elements(T* dest, std::size_t count = 1)
|
||||||
|
{
|
||||||
|
auto res = static_cast<std::size_t>(sb->sgetn(reinterpret_cast<char*>(dest), static_cast<std::streamsize>(count * sizeof(T))));
|
||||||
|
if (JSON_HEDLEY_UNLIKELY(res < count * sizeof(T)))
|
||||||
|
{
|
||||||
|
is->clear(is->rdstate() | std::ios::eofbit);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// the associated input stream
|
/// the associated input stream
|
||||||
std::istream* is = nullptr;
|
std::istream* is = nullptr;
|
||||||
@ -157,6 +176,26 @@ class iterator_input_adapter
|
|||||||
return char_traits<char_type>::eof();
|
return char_traits<char_type>::eof();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// for general iterators, we cannot really do something better than falling back to processing the range one-by-one
|
||||||
|
template<class T>
|
||||||
|
std::size_t get_elements(T* dest, std::size_t count = 1)
|
||||||
|
{
|
||||||
|
auto* ptr = reinterpret_cast<char*>(dest);
|
||||||
|
for (std::size_t read_index = 0; read_index < count * sizeof(T); ++read_index)
|
||||||
|
{
|
||||||
|
if (JSON_HEDLEY_LIKELY(current != end))
|
||||||
|
{
|
||||||
|
ptr[read_index] = static_cast<char>(*current);
|
||||||
|
std::advance(current, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return read_index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count * sizeof(T);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IteratorType current;
|
IteratorType current;
|
||||||
IteratorType end;
|
IteratorType end;
|
||||||
@ -320,6 +359,13 @@ class wide_string_input_adapter
|
|||||||
return utf8_bytes[utf8_bytes_index++];
|
return utf8_bytes[utf8_bytes_index++];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parsing binary with wchar doesn't make sense, but since the parsing mode can be runtime, we need something here
|
||||||
|
template<class T>
|
||||||
|
std::size_t get_elements(T* /*dest*/, std::size_t /*count*/ = 1)
|
||||||
|
{
|
||||||
|
JSON_THROW(parse_error::create(112, 1, "wide string type cannot be interpreted as binary data", nullptr));
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BaseInputAdapter base_adapter;
|
BaseInputAdapter base_adapter;
|
||||||
|
|
||||||
@ -420,6 +466,10 @@ typename container_input_adapter_factory_impl::container_input_adapter_factory<C
|
|||||||
// Special cases with fast paths
|
// Special cases with fast paths
|
||||||
inline file_input_adapter input_adapter(std::FILE* file)
|
inline file_input_adapter input_adapter(std::FILE* file)
|
||||||
{
|
{
|
||||||
|
if (file == nullptr)
|
||||||
|
{
|
||||||
|
JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr));
|
||||||
|
}
|
||||||
return file_input_adapter(file);
|
return file_input_adapter(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -446,6 +496,10 @@ template < typename CharT,
|
|||||||
int >::type = 0 >
|
int >::type = 0 >
|
||||||
contiguous_bytes_input_adapter input_adapter(CharT b)
|
contiguous_bytes_input_adapter input_adapter(CharT b)
|
||||||
{
|
{
|
||||||
|
if (b == nullptr)
|
||||||
|
{
|
||||||
|
JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr));
|
||||||
|
}
|
||||||
auto length = std::strlen(reinterpret_cast<const char*>(b));
|
auto length = std::strlen(reinterpret_cast<const char*>(b));
|
||||||
const auto* ptr = reinterpret_cast<const char*>(b);
|
const auto* ptr = reinterpret_cast<const char*>(b);
|
||||||
return input_adapter(ptr, ptr + length);
|
return input_adapter(ptr, ptr + length);
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
@ -1049,6 +1049,7 @@ scan_number_zero:
|
|||||||
case '.':
|
case '.':
|
||||||
{
|
{
|
||||||
add(decimal_point_char);
|
add(decimal_point_char);
|
||||||
|
decimal_point_position = token_buffer.size() - 1;
|
||||||
goto scan_number_decimal1;
|
goto scan_number_decimal1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1085,6 +1086,7 @@ scan_number_any1:
|
|||||||
case '.':
|
case '.':
|
||||||
{
|
{
|
||||||
add(decimal_point_char);
|
add(decimal_point_char);
|
||||||
|
decimal_point_position = token_buffer.size() - 1;
|
||||||
goto scan_number_decimal1;
|
goto scan_number_decimal1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1256,7 +1258,7 @@ scan_number_done:
|
|||||||
// we checked the number format before
|
// we checked the number format before
|
||||||
JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());
|
JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());
|
||||||
|
|
||||||
if (errno == 0)
|
if (errno != ERANGE)
|
||||||
{
|
{
|
||||||
value_unsigned = static_cast<number_unsigned_t>(x);
|
value_unsigned = static_cast<number_unsigned_t>(x);
|
||||||
if (value_unsigned == x)
|
if (value_unsigned == x)
|
||||||
@ -1272,7 +1274,7 @@ scan_number_done:
|
|||||||
// we checked the number format before
|
// we checked the number format before
|
||||||
JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());
|
JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());
|
||||||
|
|
||||||
if (errno == 0)
|
if (errno != ERANGE)
|
||||||
{
|
{
|
||||||
value_integer = static_cast<number_integer_t>(x);
|
value_integer = static_cast<number_integer_t>(x);
|
||||||
if (value_integer == x)
|
if (value_integer == x)
|
||||||
@ -1322,6 +1324,7 @@ scan_number_done:
|
|||||||
{
|
{
|
||||||
token_buffer.clear();
|
token_buffer.clear();
|
||||||
token_string.clear();
|
token_string.clear();
|
||||||
|
decimal_point_position = std::string::npos;
|
||||||
token_string.push_back(char_traits<char_type>::to_char_type(current));
|
token_string.push_back(char_traits<char_type>::to_char_type(current));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1430,6 +1433,11 @@ scan_number_done:
|
|||||||
/// return current string value (implicitly resets the token; useful only once)
|
/// return current string value (implicitly resets the token; useful only once)
|
||||||
string_t& get_string()
|
string_t& get_string()
|
||||||
{
|
{
|
||||||
|
// translate decimal points from locale back to '.' (#4084)
|
||||||
|
if (decimal_point_char != '.' && decimal_point_position != std::string::npos)
|
||||||
|
{
|
||||||
|
token_buffer[decimal_point_position] = '.';
|
||||||
|
}
|
||||||
return token_buffer;
|
return token_buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1627,6 +1635,8 @@ scan_number_done:
|
|||||||
|
|
||||||
/// the decimal point
|
/// the decimal point
|
||||||
const char_int_type decimal_point_char = '.';
|
const char_int_type decimal_point_char = '.';
|
||||||
|
/// the position of the decimal point in the input
|
||||||
|
std::size_t decimal_point_position = std::string::npos;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
@ -463,7 +463,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: equal
|
@brief comparison: equal
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >
|
template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >
|
||||||
bool operator==(const IterImpl& other) const
|
bool operator==(const IterImpl& other) const
|
||||||
@ -474,7 +474,11 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object));
|
JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object));
|
||||||
}
|
}
|
||||||
|
|
||||||
JSON_ASSERT(m_object != nullptr);
|
// value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493
|
||||||
|
if (m_object == nullptr)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
switch (m_object->m_data.m_type)
|
switch (m_object->m_data.m_type)
|
||||||
{
|
{
|
||||||
@ -499,7 +503,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: not equal
|
@brief comparison: not equal
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >
|
template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >
|
||||||
bool operator!=(const IterImpl& other) const
|
bool operator!=(const IterImpl& other) const
|
||||||
@ -509,7 +513,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: smaller
|
@brief comparison: smaller
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
bool operator<(const iter_impl& other) const
|
bool operator<(const iter_impl& other) const
|
||||||
{
|
{
|
||||||
@ -519,7 +523,12 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object));
|
JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object));
|
||||||
}
|
}
|
||||||
|
|
||||||
JSON_ASSERT(m_object != nullptr);
|
// value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493
|
||||||
|
if (m_object == nullptr)
|
||||||
|
{
|
||||||
|
// the iterators are both value-initialized and are to be considered equal, but this function checks for smaller, so we return false
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
switch (m_object->m_data.m_type)
|
switch (m_object->m_data.m_type)
|
||||||
{
|
{
|
||||||
@ -544,7 +553,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: less than or equal
|
@brief comparison: less than or equal
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
bool operator<=(const iter_impl& other) const
|
bool operator<=(const iter_impl& other) const
|
||||||
{
|
{
|
||||||
@ -553,7 +562,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: greater than
|
@brief comparison: greater than
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
bool operator>(const iter_impl& other) const
|
bool operator>(const iter_impl& other) const
|
||||||
{
|
{
|
||||||
@ -562,7 +571,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: greater than or equal
|
@brief comparison: greater than or equal
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) The iterator is initialized; i.e. `m_object != nullptr`, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
bool operator>=(const iter_impl& other) const
|
bool operator>=(const iter_impl& other) const
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-FileCopyrightText: 2018 The Abseil Authors
|
// SPDX-FileCopyrightText: 2018 The Abseil Authors
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2008-2009 Björn Hoehrmann <bjoern@hoehrmann.de>
|
// SPDX-FileCopyrightText: 2008 - 2009 Björn Hoehrmann <bjoern@hoehrmann.de>
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/****************************************************************************\
|
/****************************************************************************\
|
||||||
@ -1463,13 +1463,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
/// get a pointer to the value (integer number)
|
/// get a pointer to the value (integer number)
|
||||||
number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept
|
number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept
|
||||||
{
|
{
|
||||||
return is_number_integer() ? &m_data.m_value.number_integer : nullptr;
|
return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// get a pointer to the value (integer number)
|
/// get a pointer to the value (integer number)
|
||||||
constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept
|
constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept
|
||||||
{
|
{
|
||||||
return is_number_integer() ? &m_data.m_value.number_integer : nullptr;
|
return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// get a pointer to the value (unsigned number)
|
/// get a pointer to the value (unsigned number)
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-FileCopyrightText: 2016-2021 Evan Nemerson <evan@nemerson.com>
|
// SPDX-FileCopyrightText: 2016 - 2021 Evan Nemerson <evan@nemerson.com>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/* Hedley - https://nemequ.github.io/hedley
|
/* Hedley - https://nemequ.github.io/hedley
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/****************************************************************************\
|
/****************************************************************************\
|
||||||
@ -37,7 +37,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -50,7 +50,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -152,7 +152,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -179,7 +179,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -199,7 +199,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -215,7 +215,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -227,7 +227,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -240,7 +240,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -327,8 +327,8 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-FileCopyrightText: 2016-2021 Evan Nemerson <evan@nemerson.com>
|
// SPDX-FileCopyrightText: 2016 - 2021 Evan Nemerson <evan@nemerson.com>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/* Hedley - https://nemequ.github.io/hedley
|
/* Hedley - https://nemequ.github.io/hedley
|
||||||
@ -2976,7 +2976,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -3051,7 +3051,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -3093,7 +3093,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-FileCopyrightText: 2018 The Abseil Authors
|
// SPDX-FileCopyrightText: 2018 The Abseil Authors
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
@ -3267,7 +3267,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -3284,7 +3284,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -3352,7 +3352,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -3372,7 +3372,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -3396,7 +3396,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
||||||
@ -4247,7 +4247,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -4392,6 +4392,18 @@ inline OutStringType concat(Args && ... args)
|
|||||||
NLOHMANN_JSON_NAMESPACE_END
|
NLOHMANN_JSON_NAMESPACE_END
|
||||||
|
|
||||||
|
|
||||||
|
// With -Wweak-vtables, Clang will complain about the exception classes as they
|
||||||
|
// have no out-of-line virtual method definitions and their vtable will be
|
||||||
|
// emitted in every translation unit. This issue cannot be fixed with a
|
||||||
|
// header-only library as there is no implementation file to move these
|
||||||
|
// functions to. As a result, we suppress this warning here to avoid client
|
||||||
|
// code to stumble over this. See https://github.com/nlohmann/json/issues/4087
|
||||||
|
// for a discussion.
|
||||||
|
#if defined(__clang__)
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Wweak-vtables"
|
||||||
|
#endif
|
||||||
|
|
||||||
NLOHMANN_JSON_NAMESPACE_BEGIN
|
NLOHMANN_JSON_NAMESPACE_BEGIN
|
||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
@ -4623,6 +4635,10 @@ class other_error : public exception
|
|||||||
} // namespace detail
|
} // namespace detail
|
||||||
NLOHMANN_JSON_NAMESPACE_END
|
NLOHMANN_JSON_NAMESPACE_END
|
||||||
|
|
||||||
|
#if defined(__clang__)
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
#endif
|
||||||
|
|
||||||
// #include <nlohmann/detail/macro_scope.hpp>
|
// #include <nlohmann/detail/macro_scope.hpp>
|
||||||
|
|
||||||
// #include <nlohmann/detail/meta/cpp_future.hpp>
|
// #include <nlohmann/detail/meta/cpp_future.hpp>
|
||||||
@ -4633,7 +4649,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -4657,7 +4673,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -5181,7 +5197,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -5204,7 +5220,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -5942,7 +5958,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -6054,7 +6070,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -6187,7 +6203,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -6204,6 +6220,9 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
#include <string> // char_traits, string
|
#include <string> // char_traits, string
|
||||||
#include <utility> // make_pair, move
|
#include <utility> // make_pair, move
|
||||||
#include <vector> // vector
|
#include <vector> // vector
|
||||||
|
#ifdef __cpp_lib_byteswap
|
||||||
|
#include <bit> //byteswap
|
||||||
|
#endif
|
||||||
|
|
||||||
// #include <nlohmann/detail/exceptions.hpp>
|
// #include <nlohmann/detail/exceptions.hpp>
|
||||||
|
|
||||||
@ -6213,7 +6232,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -6233,6 +6252,8 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
#include <istream> // istream
|
#include <istream> // istream
|
||||||
#endif // JSON_NO_IO
|
#endif // JSON_NO_IO
|
||||||
|
|
||||||
|
// #include <nlohmann/detail/exceptions.hpp>
|
||||||
|
|
||||||
// #include <nlohmann/detail/iterators/iterator_traits.hpp>
|
// #include <nlohmann/detail/iterators/iterator_traits.hpp>
|
||||||
|
|
||||||
// #include <nlohmann/detail/macro_scope.hpp>
|
// #include <nlohmann/detail/macro_scope.hpp>
|
||||||
@ -6280,6 +6301,13 @@ class file_input_adapter
|
|||||||
return std::fgetc(m_file);
|
return std::fgetc(m_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// returns the number of characters successfully read
|
||||||
|
template<class T>
|
||||||
|
std::size_t get_elements(T* dest, std::size_t count = 1)
|
||||||
|
{
|
||||||
|
return fread(dest, 1, sizeof(T) * count, m_file);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// the file pointer to read from
|
/// the file pointer to read from
|
||||||
std::FILE* m_file;
|
std::FILE* m_file;
|
||||||
@ -6339,6 +6367,17 @@ class input_stream_adapter
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
std::size_t get_elements(T* dest, std::size_t count = 1)
|
||||||
|
{
|
||||||
|
auto res = static_cast<std::size_t>(sb->sgetn(reinterpret_cast<char*>(dest), static_cast<std::streamsize>(count * sizeof(T))));
|
||||||
|
if (JSON_HEDLEY_UNLIKELY(res < count * sizeof(T)))
|
||||||
|
{
|
||||||
|
is->clear(is->rdstate() | std::ios::eofbit);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// the associated input stream
|
/// the associated input stream
|
||||||
std::istream* is = nullptr;
|
std::istream* is = nullptr;
|
||||||
@ -6370,6 +6409,26 @@ class iterator_input_adapter
|
|||||||
return char_traits<char_type>::eof();
|
return char_traits<char_type>::eof();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// for general iterators, we cannot really do something better than falling back to processing the range one-by-one
|
||||||
|
template<class T>
|
||||||
|
std::size_t get_elements(T* dest, std::size_t count = 1)
|
||||||
|
{
|
||||||
|
auto* ptr = reinterpret_cast<char*>(dest);
|
||||||
|
for (std::size_t read_index = 0; read_index < count * sizeof(T); ++read_index)
|
||||||
|
{
|
||||||
|
if (JSON_HEDLEY_LIKELY(current != end))
|
||||||
|
{
|
||||||
|
ptr[read_index] = static_cast<char>(*current);
|
||||||
|
std::advance(current, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return read_index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count * sizeof(T);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IteratorType current;
|
IteratorType current;
|
||||||
IteratorType end;
|
IteratorType end;
|
||||||
@ -6533,6 +6592,13 @@ class wide_string_input_adapter
|
|||||||
return utf8_bytes[utf8_bytes_index++];
|
return utf8_bytes[utf8_bytes_index++];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parsing binary with wchar doesn't make sense, but since the parsing mode can be runtime, we need something here
|
||||||
|
template<class T>
|
||||||
|
std::size_t get_elements(T* /*dest*/, std::size_t /*count*/ = 1)
|
||||||
|
{
|
||||||
|
JSON_THROW(parse_error::create(112, 1, "wide string type cannot be interpreted as binary data", nullptr));
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BaseInputAdapter base_adapter;
|
BaseInputAdapter base_adapter;
|
||||||
|
|
||||||
@ -6633,6 +6699,10 @@ typename container_input_adapter_factory_impl::container_input_adapter_factory<C
|
|||||||
// Special cases with fast paths
|
// Special cases with fast paths
|
||||||
inline file_input_adapter input_adapter(std::FILE* file)
|
inline file_input_adapter input_adapter(std::FILE* file)
|
||||||
{
|
{
|
||||||
|
if (file == nullptr)
|
||||||
|
{
|
||||||
|
JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr));
|
||||||
|
}
|
||||||
return file_input_adapter(file);
|
return file_input_adapter(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6659,6 +6729,10 @@ template < typename CharT,
|
|||||||
int >::type = 0 >
|
int >::type = 0 >
|
||||||
contiguous_bytes_input_adapter input_adapter(CharT b)
|
contiguous_bytes_input_adapter input_adapter(CharT b)
|
||||||
{
|
{
|
||||||
|
if (b == nullptr)
|
||||||
|
{
|
||||||
|
JSON_THROW(parse_error::create(101, 0, "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr));
|
||||||
|
}
|
||||||
auto length = std::strlen(reinterpret_cast<const char*>(b));
|
auto length = std::strlen(reinterpret_cast<const char*>(b));
|
||||||
const auto* ptr = reinterpret_cast<const char*>(b);
|
const auto* ptr = reinterpret_cast<const char*>(b);
|
||||||
return input_adapter(ptr, ptr + length);
|
return input_adapter(ptr, ptr + length);
|
||||||
@ -6710,7 +6784,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -7442,7 +7516,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -8492,6 +8566,7 @@ scan_number_zero:
|
|||||||
case '.':
|
case '.':
|
||||||
{
|
{
|
||||||
add(decimal_point_char);
|
add(decimal_point_char);
|
||||||
|
decimal_point_position = token_buffer.size() - 1;
|
||||||
goto scan_number_decimal1;
|
goto scan_number_decimal1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8528,6 +8603,7 @@ scan_number_any1:
|
|||||||
case '.':
|
case '.':
|
||||||
{
|
{
|
||||||
add(decimal_point_char);
|
add(decimal_point_char);
|
||||||
|
decimal_point_position = token_buffer.size() - 1;
|
||||||
goto scan_number_decimal1;
|
goto scan_number_decimal1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8699,7 +8775,7 @@ scan_number_done:
|
|||||||
// we checked the number format before
|
// we checked the number format before
|
||||||
JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());
|
JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());
|
||||||
|
|
||||||
if (errno == 0)
|
if (errno != ERANGE)
|
||||||
{
|
{
|
||||||
value_unsigned = static_cast<number_unsigned_t>(x);
|
value_unsigned = static_cast<number_unsigned_t>(x);
|
||||||
if (value_unsigned == x)
|
if (value_unsigned == x)
|
||||||
@ -8715,7 +8791,7 @@ scan_number_done:
|
|||||||
// we checked the number format before
|
// we checked the number format before
|
||||||
JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());
|
JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());
|
||||||
|
|
||||||
if (errno == 0)
|
if (errno != ERANGE)
|
||||||
{
|
{
|
||||||
value_integer = static_cast<number_integer_t>(x);
|
value_integer = static_cast<number_integer_t>(x);
|
||||||
if (value_integer == x)
|
if (value_integer == x)
|
||||||
@ -8765,6 +8841,7 @@ scan_number_done:
|
|||||||
{
|
{
|
||||||
token_buffer.clear();
|
token_buffer.clear();
|
||||||
token_string.clear();
|
token_string.clear();
|
||||||
|
decimal_point_position = std::string::npos;
|
||||||
token_string.push_back(char_traits<char_type>::to_char_type(current));
|
token_string.push_back(char_traits<char_type>::to_char_type(current));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8873,6 +8950,11 @@ scan_number_done:
|
|||||||
/// return current string value (implicitly resets the token; useful only once)
|
/// return current string value (implicitly resets the token; useful only once)
|
||||||
string_t& get_string()
|
string_t& get_string()
|
||||||
{
|
{
|
||||||
|
// translate decimal points from locale back to '.' (#4084)
|
||||||
|
if (decimal_point_char != '.' && decimal_point_position != std::string::npos)
|
||||||
|
{
|
||||||
|
token_buffer[decimal_point_position] = '.';
|
||||||
|
}
|
||||||
return token_buffer;
|
return token_buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9070,6 +9152,8 @@ scan_number_done:
|
|||||||
|
|
||||||
/// the decimal point
|
/// the decimal point
|
||||||
const char_int_type decimal_point_char = '.';
|
const char_int_type decimal_point_char = '.';
|
||||||
|
/// the position of the decimal point in the input
|
||||||
|
std::size_t decimal_point_position = std::string::npos;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
@ -9083,7 +9167,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -11971,6 +12055,29 @@ class binary_reader
|
|||||||
return current = ia.get_character();
|
return current = ia.get_character();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
@brief get_to read into a primitive type
|
||||||
|
|
||||||
|
This function provides the interface to the used input adapter. It does
|
||||||
|
not throw in case the input reached EOF, but returns false instead
|
||||||
|
|
||||||
|
@return bool, whether the read was successful
|
||||||
|
*/
|
||||||
|
template<class T>
|
||||||
|
bool get_to(T& dest, const input_format_t format, const char* context)
|
||||||
|
{
|
||||||
|
auto new_chars_read = ia.get_elements(&dest);
|
||||||
|
chars_read += new_chars_read;
|
||||||
|
if (JSON_HEDLEY_UNLIKELY(new_chars_read < sizeof(T)))
|
||||||
|
{
|
||||||
|
// in case of failure, advance position by 1 to report failing location
|
||||||
|
++chars_read;
|
||||||
|
sax->parse_error(chars_read, "<end of file>", parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), nullptr));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@return character read from the input after ignoring all 'N' entries
|
@return character read from the input after ignoring all 'N' entries
|
||||||
*/
|
*/
|
||||||
@ -11985,6 +12092,28 @@ class binary_reader
|
|||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class NumberType>
|
||||||
|
static void byte_swap(NumberType& number)
|
||||||
|
{
|
||||||
|
constexpr std::size_t sz = sizeof(number);
|
||||||
|
#ifdef __cpp_lib_byteswap
|
||||||
|
if constexpr (sz == 1)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if constexpr(std::is_integral_v<NumberType>)
|
||||||
|
{
|
||||||
|
number = std::byteswap(number);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
auto* ptr = reinterpret_cast<std::uint8_t*>(&number);
|
||||||
|
for (std::size_t i = 0; i < sz / 2; ++i)
|
||||||
|
{
|
||||||
|
std::swap(ptr[i], ptr[sz - i - 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@brief read a number from the input
|
@brief read a number from the input
|
||||||
|
|
||||||
@ -12003,29 +12132,16 @@ class binary_reader
|
|||||||
template<typename NumberType, bool InputIsLittleEndian = false>
|
template<typename NumberType, bool InputIsLittleEndian = false>
|
||||||
bool get_number(const input_format_t format, NumberType& result)
|
bool get_number(const input_format_t format, NumberType& result)
|
||||||
{
|
{
|
||||||
// step 1: read input into array with system's byte order
|
// read in the original format
|
||||||
std::array<std::uint8_t, sizeof(NumberType)> vec{};
|
|
||||||
for (std::size_t i = 0; i < sizeof(NumberType); ++i)
|
if (JSON_HEDLEY_UNLIKELY(!get_to(result, format, "number")))
|
||||||
{
|
{
|
||||||
get();
|
return false;
|
||||||
if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, "number")))
|
}
|
||||||
{
|
if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata))
|
||||||
return false;
|
{
|
||||||
}
|
byte_swap(result);
|
||||||
|
|
||||||
// reverse byte order prior to conversion if necessary
|
|
||||||
if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata))
|
|
||||||
{
|
|
||||||
vec[sizeof(NumberType) - i - 1] = static_cast<std::uint8_t>(current);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
vec[i] = static_cast<std::uint8_t>(current); // LCOV_EXCL_LINE
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// step 2: convert array into number of type T and return
|
|
||||||
std::memcpy(&result, vec.data(), sizeof(NumberType));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -12235,7 +12351,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -12764,7 +12880,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -12777,7 +12893,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -12936,7 +13052,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -13403,7 +13519,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: equal
|
@brief comparison: equal
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >
|
template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >
|
||||||
bool operator==(const IterImpl& other) const
|
bool operator==(const IterImpl& other) const
|
||||||
@ -13414,7 +13530,11 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object));
|
JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object));
|
||||||
}
|
}
|
||||||
|
|
||||||
JSON_ASSERT(m_object != nullptr);
|
// value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493
|
||||||
|
if (m_object == nullptr)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
switch (m_object->m_data.m_type)
|
switch (m_object->m_data.m_type)
|
||||||
{
|
{
|
||||||
@ -13439,7 +13559,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: not equal
|
@brief comparison: not equal
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >
|
template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >
|
||||||
bool operator!=(const IterImpl& other) const
|
bool operator!=(const IterImpl& other) const
|
||||||
@ -13449,7 +13569,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: smaller
|
@brief comparison: smaller
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
bool operator<(const iter_impl& other) const
|
bool operator<(const iter_impl& other) const
|
||||||
{
|
{
|
||||||
@ -13459,7 +13579,12 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object));
|
JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers", m_object));
|
||||||
}
|
}
|
||||||
|
|
||||||
JSON_ASSERT(m_object != nullptr);
|
// value-initialized forward iterators can be compared, and must compare equal to other value-initialized iterators of the same type #4493
|
||||||
|
if (m_object == nullptr)
|
||||||
|
{
|
||||||
|
// the iterators are both value-initialized and are to be considered equal, but this function checks for smaller, so we return false
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
switch (m_object->m_data.m_type)
|
switch (m_object->m_data.m_type)
|
||||||
{
|
{
|
||||||
@ -13484,7 +13609,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: less than or equal
|
@brief comparison: less than or equal
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
bool operator<=(const iter_impl& other) const
|
bool operator<=(const iter_impl& other) const
|
||||||
{
|
{
|
||||||
@ -13493,7 +13618,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: greater than
|
@brief comparison: greater than
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) Both iterators are initialized to point to the same object, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
bool operator>(const iter_impl& other) const
|
bool operator>(const iter_impl& other) const
|
||||||
{
|
{
|
||||||
@ -13502,7 +13627,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief comparison: greater than or equal
|
@brief comparison: greater than or equal
|
||||||
@pre The iterator is initialized; i.e. `m_object != nullptr`.
|
@pre (1) The iterator is initialized; i.e. `m_object != nullptr`, or (2) both iterators are value-initialized.
|
||||||
*/
|
*/
|
||||||
bool operator>=(const iter_impl& other) const
|
bool operator>=(const iter_impl& other) const
|
||||||
{
|
{
|
||||||
@ -13698,7 +13823,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -13833,7 +13958,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -13875,7 +14000,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -14870,7 +14995,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -14962,7 +15087,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -14988,7 +15113,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -16956,8 +17081,8 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2008-2009 Björn Hoehrmann <bjoern@hoehrmann.de>
|
// SPDX-FileCopyrightText: 2008 - 2009 Björn Hoehrmann <bjoern@hoehrmann.de>
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -16982,7 +17107,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2009 Florian Loitsch <https://florian.loitsch.com/>
|
// SPDX-FileCopyrightText: 2009 Florian Loitsch <https://florian.loitsch.com/>
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -19077,7 +19202,7 @@ NLOHMANN_JSON_NAMESPACE_END
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -20837,13 +20962,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
|
|||||||
/// get a pointer to the value (integer number)
|
/// get a pointer to the value (integer number)
|
||||||
number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept
|
number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept
|
||||||
{
|
{
|
||||||
return is_number_integer() ? &m_data.m_value.number_integer : nullptr;
|
return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// get a pointer to the value (integer number)
|
/// get a pointer to the value (integer number)
|
||||||
constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept
|
constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept
|
||||||
{
|
{
|
||||||
return is_number_integer() ? &m_data.m_value.number_integer : nullptr;
|
return m_data.m_type == value_t::number_integer ? &m_data.m_value.number_integer : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// get a pointer to the value (unsigned number)
|
/// get a pointer to the value (unsigned number)
|
||||||
@ -24633,7 +24758,7 @@ inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
@ -24678,7 +24803,7 @@ inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
|
||||||
@ -21,7 +21,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#undef JSON_DIAGNOSTICS
|
#undef JSON_DIAGNOSTICS
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#undef JSON_DIAGNOSTICS
|
#undef JSON_DIAGNOSTICS
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,8 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// Copyright (c) 2013-2022 Niels Lohmann <http://nlohmann.me>.
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
|
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include <benchmark/benchmark.h>
|
#include <benchmark/benchmark.h>
|
||||||
@ -140,6 +140,46 @@ BENCHMARK_CAPTURE(ToCbor, signed_ints, TEST_DATA_DIRECTORY "/regression/si
|
|||||||
BENCHMARK_CAPTURE(ToCbor, unsigned_ints, TEST_DATA_DIRECTORY "/regression/unsigned_ints.json");
|
BENCHMARK_CAPTURE(ToCbor, unsigned_ints, TEST_DATA_DIRECTORY "/regression/unsigned_ints.json");
|
||||||
BENCHMARK_CAPTURE(ToCbor, small_signed_ints, TEST_DATA_DIRECTORY "/regression/small_signed_ints.json");
|
BENCHMARK_CAPTURE(ToCbor, small_signed_ints, TEST_DATA_DIRECTORY "/regression/small_signed_ints.json");
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Parse Msgpack
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static void FromMsgpack(benchmark::State& state, const char* filename)
|
||||||
|
{
|
||||||
|
std::ifstream f(filename);
|
||||||
|
std::string str((std::istreambuf_iterator<char>(f)), std::istreambuf_iterator<char>());
|
||||||
|
auto bytes = json::to_msgpack(json::parse(str));
|
||||||
|
std::ofstream o("test.msgpack");
|
||||||
|
o.write((char*)bytes.data(), bytes.size());
|
||||||
|
o.flush();
|
||||||
|
o.close();
|
||||||
|
for (auto _ : state)
|
||||||
|
{
|
||||||
|
state.PauseTiming();
|
||||||
|
auto* j = new json();
|
||||||
|
auto file = fopen("test.msgpack", "rb");
|
||||||
|
state.ResumeTiming();
|
||||||
|
|
||||||
|
*j = json::from_msgpack(file);
|
||||||
|
|
||||||
|
state.PauseTiming();
|
||||||
|
fclose(file);
|
||||||
|
delete j;
|
||||||
|
state.ResumeTiming();
|
||||||
|
}
|
||||||
|
|
||||||
|
state.SetBytesProcessed(state.iterations() * bytes.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
BENCHMARK_CAPTURE(FromMsgpack, jeopardy, TEST_DATA_DIRECTORY "/jeopardy/jeopardy.json");
|
||||||
|
BENCHMARK_CAPTURE(FromMsgpack, canada, TEST_DATA_DIRECTORY "/nativejson-benchmark/canada.json");
|
||||||
|
BENCHMARK_CAPTURE(FromMsgpack, citm_catalog, TEST_DATA_DIRECTORY "/nativejson-benchmark/citm_catalog.json");
|
||||||
|
BENCHMARK_CAPTURE(FromMsgpack, twitter, TEST_DATA_DIRECTORY "/nativejson-benchmark/twitter.json");
|
||||||
|
BENCHMARK_CAPTURE(FromMsgpack, floats, TEST_DATA_DIRECTORY "/regression/floats.json");
|
||||||
|
BENCHMARK_CAPTURE(FromMsgpack, signed_ints, TEST_DATA_DIRECTORY "/regression/signed_ints.json");
|
||||||
|
BENCHMARK_CAPTURE(FromMsgpack, unsigned_ints, TEST_DATA_DIRECTORY "/regression/unsigned_ints.json");
|
||||||
|
BENCHMARK_CAPTURE(FromMsgpack, small_signed_ints, TEST_DATA_DIRECTORY "/regression/small_signed_ints.json");
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
// serialize binary CBOR
|
// serialize binary CBOR
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "Bar.hpp"
|
#include "Bar.hpp"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "Foo.hpp"
|
#include "Foo.hpp"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-FileCopyrightText: 2018 Vitaliy Manushkin <agri@akamo.info>
|
// SPDX-FileCopyrightText: 2018 Vitaliy Manushkin <agri@akamo.info>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
@ -3,8 +3,7 @@
|
|||||||
// | | |__ | | | | | | version 3.11.3
|
// | | |__ | | | | | | version 3.11.3
|
||||||
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
// |_____|_____|_____|_|___| https://github.com/nlohmann/json
|
||||||
//
|
//
|
||||||
// Copyright (c) 2013-2022 Niels Lohmann <http://nlohmann.me>.
|
// SPDX-FileCopyrightText: 2013 - 2024 Niels Lohmann <https://nlohmann.me>
|
||||||
// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
|
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#include "doctest_compatibility.h"
|
#include "doctest_compatibility.h"
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user