This project is mirrored from Pull mirroring updated .
  1. 23 May, 2022 1 commit
  2. 20 May, 2022 1 commit
  3. 19 May, 2022 1 commit
  4. 18 May, 2022 1 commit
  5. 17 May, 2022 1 commit
    • Niels Lohmann's avatar
      Complete documentation for 3.11.0 (#3464) · 6a739205
      Niels Lohmann authored
      * 👥 update contributor and sponsor list
      * 🚧 document BJData format
      * 🚧 document BJData format
      * 📝 clarified documentation of [json.exception.parse_error.112]
      *  adjust titles
      * 📝 add more examples
      * 🚨 adjust warnings for files
      * 📝 add more examples
      * 🔥 remove example for deprecated code
      * 📝 add missing enum entry
      * 📝 overwork table for binary formats
      *  add test to create table for binary formats
      * 📝 fix wording in example
      * 📝 add more examples
      * Update (#3481)
      *  add check for overloads to linter #3455
      * 👥 update contributor list
      * 📝 add more examples
      * 📝 fix documentation
      * 📝 add more examples
      * 🎨 fix indentation
      * 🔥 remove example for destructor
      * 📝
       overwork documentation
      * Updated BJData documentation, #3464 (#3493)
      * update for #3464
      * Minor edit
      * Fix URL typo
      * Add info on demoting ND array to a 1-D optimized array when singleton dimension
      Co-authored-by: default avatarChaoqi Zhang <>
      Co-authored-by: default avatarQianqian Fang <>
  6. 10 May, 2022 1 commit
  7. 09 May, 2022 1 commit
  8. 01 May, 2022 4 commits
  9. 29 Apr, 2022 2 commits
    • Florian Albrechtskirchinger's avatar
      Implement support for string_view (attempt no. 3) (#3423) · 5352856f
      Florian Albrechtskirchinger authored
      * Add key_compare member to ordered_map
      * Replace == with key_compare in ordered_map
      * Expose the actual comparison function used by object_t
      nlohmann::ordered_map uses a different comparison function than the one
      provided via template parameter.
      * Introduce a type trait to detect if object_t has a key_compare member.
      * Rename object_comparator_t to default_object_comparator_t.
      * Add object_comparator_t to be conditionally defined as
        object_t::key_compare, if available, or default_object_comparator_t
      * Update the documentation accordingly.
      Co-authored-by: default avatarNiels Lohmann <>
      * Add type traits to check if a type is usable as object key
      Add type trait to check:
      * if a type is a specialization of a template.
      * if a type is a json_pointer.
      * if a type is a basic_json::{const_,}iterator.
      * if two types are comparable using a given comparison functor.
      * if a type is comparable to basic_json::object_t::key_type.
      * if a type has a member type is_transparent.
      * if a type is usable as object key.
      * if a type has an erase() function accepting a given KeyType.
      Co-authored-by: default avatarNiels Lohmann <>
      * Rework basic_json element access to accept more key types
      Rework basic_json element access member functions and operators to
      accept any type that meets the requirements defined by type trait
      Member functions and operators:
      * at()
      * operator[]
      * value()
      * erase()
      * find()
      * count()
      * contains()
      Update documentation to reflect these changes.
      Add unit tests to excercise the new functions using std::string_view.
      Co-authored-by: default avatarNiels Lohmann <>
      Co-authored-by: default avatarNiels Lohmann <>
    • Qianqian Fang's avatar
      Support UBJSON-derived Binary JData (BJData) format (#3336) · ee516614
      Qianqian Fang authored
      * support UBJSON-derived Binary JData (BJData) format
      * fix Codacy warning
      * partially fix VS compilation errors
      * fix additional VS errors
      * fix more VS compilation errors
      * fix additional warnings and errors for clang and msvc
      * add more tests to cover the new bjdata types
      * add tests for optimized ndarray, improve coverage, fix clang/gcc warnings
      * gcc warn useless conversion but msvc gives an error
      * fix ci_test errors
      * complete test coverage, fix ci_test errors
      * add half precision error test
      * fix No newline at end of file error by clang
      * simplify endian condition, format unit-bjdata
      * remove broken test due to alloc limit
      * full coverage, I hope
      * move bjdata new markers from default to the same level as ubjson markers
      * fix ci errors, add tests for new bjdata switch structure
      * make is_bjdata const after using initializer list
      * remove the unwanted assert
      * move is_bjdata to an optional param to write_ubjson
      * pass use_bjdata via output adapter
      * revert order to avoid msvc 2015 unreferenced formal param error
      * update BJData Spect V1 Draft-2 URL after spec release
      * amalgamate code
      * code polishing following @gregmarr's feedback
      * make use_bjdata a non-default parameter
      * fix ci error, remove unwanted param comment
      * encode and decode bjdata ndarray in jdata annotations, enable roundtrip tests
      * partially fix ci errors, add tests to improve coverage
      * polish patch to remove ci errors
      * fix a ndarray dim vector condition
      * fix clang tidy error
      * add sax test cases for ndarray
      * add additional sax event tests
      * adjust sax event numbering
      * fix sax tests
      * ndarray can only be used with array containers, discard if used in object
      * complete test coverage
      * disable [{SHTFNZ in optimized type due to security risks in #2793 and hampered readability
      * fix ci error
      * move OutputIsLittleEndian from tparam to param to replace use_bjdata
      * fix ci clang gcc error
      * fix ci static analysis error
      * update json_test_data to 3.1.0, enable file-based bjdata unit tests
      * fix stack overflow error on msvc 2019 and 2022
      * use https link, update sax_parse_error after rebase
      * make input_format const and use initializer
      * return bool for write_bjdata_ndarray
      * test write_bjdata_ndarray return value as boolean
      * fix ci error
  10. 25 Apr, 2022 1 commit
    • Niels Lohmann's avatar
      Overwork documentation (#3444) · a6ee8bf9
      Niels Lohmann authored
      * 📝 overwork macro documentation
      * 📝 address review comments
      * 🔧 add style check to Makefile
      * 🙈 overwork .gitignore
      * 📌 Pygments 2.12.0 is broken
      *  fix links
      * 🚸 adjust output to cppcheck
      * 📝 add titles to more admonitions
      *  fix typos
      * 📝 document future behavior change
  11. 24 Apr, 2022 1 commit
  12. 22 Apr, 2022 1 commit
  13. 12 Apr, 2022 3 commits
    • JungHoon Lee's avatar
    • Florian Albrechtskirchinger's avatar
      Re-template json_pointer on string type (#3415) · 616caea2
      Florian Albrechtskirchinger authored
      * Make exception context optional
      Change exception context parameter to pointer and replace context with
      nullptr where appropriate.
      * Support escaping other string types
      * Add string concatenation function
      Add variadic concat() function for concatenating char *, char, and
      string types.
      * Replace string concatenations using + with concat()
      * Template json_pointer on string type
      Change json_pointer from being templated on basic_json to being
      templated on string type.
      * Add unit test for #3388
      Closes #3388.
      * Fix regression test for #2958
      * Add backwards compatibility with json_pointer<basic_json>
      * Update json_pointer docs
      * Allow comparing different json_pointers
      * Update version numbers
    • Florian Albrechtskirchinger's avatar
      Exclude std::any from implicit conversion (fixes #3428) (#3437) · 1deeb434
      Florian Albrechtskirchinger authored
      * Exclude std::any from implicit conversion
      Fixes #3428 (MSVC) and silences compiler warning on GCC (-Wconversion).
      * Exclude std::any from implicit conversion
  14. 09 Apr, 2022 1 commit
  15. 08 Apr, 2022 1 commit
  16. 06 Apr, 2022 5 commits
    • Michael Nosthoff's avatar fix typo (#3426) · 15fa6a34
      Michael Nosthoff authored
    • Niels Lohmann's avatar
      Update CI image (#3420) · 448b173c
      Niels Lohmann authored
      *  use new CI image
      *  use new CI image
      * 🚨 suppress Clang-Tidy warnings
      * 💚 use proper scan-build version
      * 🚨 suppress Clang-Tidy warnings
      *  use more recent GitHub actions
      * 💚 add missing compiler
      * 📝 update used compilers
      * 🚨 fix duplicate inclusion
    • Niels Lohmann's avatar
    • Florian Albrechtskirchinger's avatar
      CI: speedup AppVeyor builds by ~30% (#3422) · fa91409a
      Florian Albrechtskirchinger authored
      AppVeyor build VMs should provide at least two cores. Parallelize builds
      and tests.
      In addition, enable output on failure and disable verbose test output.
    • Florian Albrechtskirchinger's avatar
      Restore disabled check for #3070 (except on MSVC) (#3421) · c2054b96
      Florian Albrechtskirchinger authored
      Restore the previously disabled check for regression #3070 on all
      compilers but MSVC.
      To summarize the issue:
      Given namespace fs = std::filesystem.
      On MSVC attempting to construct an fs::path from json results in an
      ambiguous overload resolution because fs::path can be constructed from
      both a std::string as well as another fs::path.
      To the best of my knowledge there is no way to fix an ambiguous overload
      situation involving a type we do not control and with json implicitly
      converting to both std::string and fs::path.
      Re-enabling the check where it compiles and keeping it disabled for MSVC
      is the best we can do.
      Closes #3377 and #3382.
  17. 04 Apr, 2022 2 commits
  18. 03 Apr, 2022 1 commit
  19. 01 Apr, 2022 1 commit
  20. 25 Mar, 2022 3 commits
  21. 24 Mar, 2022 2 commits
    • Krzysiek Karbowiak's avatar
      Refactor unit tests to use more convenient doctest assertion macros (#3393) · ce352568
      Krzysiek Karbowiak authored
      * Add missing check
      * Refactor assertions in unit-algorithms.cpp
      * Refactor assertions in unit-bson.cpp
      * Refactor assertions in unit-cbor.cpp
      * Refactor assertions in unit-class_const_iterator.cpp
      * Refactor assertions in unit-class_iterator.cpp
      * Refactor assertions in unit-class_parser.cpp
      * Refactor assertions in unit-constructor1.cpp
      * Refactor assertions in unit-convenience.cpp
      * Refactor assertions in unit-conversions.cpp
      * Refactor assertions in unit-deserialization.cpp
      * Refactor assertions in unit-element_access1.cpp
      * Refactor assertions in unit-element_access2.cpp
      * Refactor assertions in unit-iterators1.cpp
      * Refactor assertions in unit-iterators2.cpp
      * Refactor assertions in unit-json_patch.cpp
      * Refactor assertions in unit-json_pointer.cpp
      * Refactor assertions in unit-modifiers.cpp
      * Refactor assertions in unit-msgpack.cpp
      * Refactor assertions in unit-reference_access.cpp
      * Refactor assertions in unit-regression1.cpp
      * Refactor assertions in unit-serialization.cpp
      * Refactor assertions in unit-ubjson.cpp
      * Refactor assertions in unit-unicode1.cpp
      * Apply formatting
    • Florian Albrechtskirchinger's avatar
      Improve unit testing (Part 1) (#3380) · ad103e5b
      Florian Albrechtskirchinger authored
      * Refactor unit test creation
      Add functions for creating tests and to supply test- and
      standard-specific build settings.
      Raises minimum CMake version to 3.13 in test directory.
          MAIN <main>
          [CXX_STANDARDS <version_number>...] [FORCE])
      Given a <file> unit-foo.cpp, produces
      if C++ standard <version_number> is supported by the compiler and
      thesource file contains JSON_HAS_CPP_<version_number>.  Use FORCE to
      create the test regardless of the file containing
      JSON_HAS_CPP_<version_number>.  Test targets are linked against <main>.
      CXX_STANDARDS defaults to "11".
          [CXX_STANDARDS all|<args>...]
          [COMPILE_DEFINITIONS <args>...]
          [COMPILE_FEATURES <args>...]
          [COMPILE_OPTIONS <args>...]
          [LINK_LIBRARIES <args>...]
          [LINK_OPTIONS <args>...])
      Supply test- and standard-specific build settings.
      Specify multiple tests using a list e.g., "test-foo;test-bar".
      Must be called BEFORE the test is created.
      * Don't undef some macros if JSON_TEST_KEEP_MACROS is defined
      Incidentally enables the regression tests for #2546 and #3070.
      A CHECK_THROWS_WITH_AS in #3070 was disabled which is tracked in #3377
      and a line in from_json(..., std_fs::path&) was marked with LCOV_EXCL_LINE.
      * Add three-way comparison feature test macro
      * Disable broken comparison if JSON_HAS_THREE_WAY_COMPARISON
      * Fix redefinition of inline constexpr statics
      Redelcaration of inline constexpr static data members in namespace scope
      was deprecated in C++17. Fixes -Werror=deprecated compilation failures.
      * Fix more test build failures due to missing noexcept
      * CI: update cmake_flags test to use CMake 3.13 in test directory
      Also change default for JSON_BuildTests option to depend on CMake
      * CI: turn *_CXXFLAGS into CMake lists
      * CI: use JSON_TestStandards to set CXX_STANDARD
      * CI: pass extra CXXFLAGS to standards tests
  22. 08 Mar, 2022 1 commit
    • Florian Albrechtskirchinger's avatar
      Make iterator operator++/--(int) equality-preserving (#3332) · 700b95f4
      Florian Albrechtskirchinger authored
      Commit f28fc226 introduced const qualifiers on post-(inc-/dec-)rement
      operators of iterators. These qualifiers prevent the use of basic_json
      in place of std::ranges::range, which requires the post-increment
      operator to be equality-preserving.
      These changes appear to be the result of ICC compiler suggestions, and
      no further explanation is discernible from the PR discussion (#858).
      Further testing revealed, that clang-tidy also suggests adding const to
      prevent "accidental mutation of a temporary object".
      As an alternative, this commit partially reverts f28fc226, removing all
      added const qualifiers from return types and adds lvalue reference
      qualifiers to the operator member functions instead.
      Unit tests ensure the operators remain equality-preserving and
      accidental mutation of temporaries following post-(inc-/dec-)rement is
      Fixes #3331.
  23. 07 Mar, 2022 4 commits