Allow comparing default initialized iterators
Closes #4493
{"label": "nlohmann:develop", "ref": "develop", "sha": "ee32bfc1c263900d5c31cf8a8c5429048719e42a"}
### Description

I have a use-case where I iterate over collections in a generic manner (using templates). However, iteration over basic_json fails due to the statement:
```
        JSON_ASSERT(m_object != nullptr);
```

Before asserting for non-null object, shouldn't we first check of `other.m_object` is null too? If both are null, the operator should return true before the assertion.
 

### Reproduction steps

`nlohmann::json::iterator{} == nlohmann::json::iterator{}`

### Expected vs. actual results

Expected: Should return true of m_object is nullptr for both objects

Actual: Assertion fails

### Minimal code example

_No response_

### Error messages

_No response_

### Compiler and operating system

gcc 9.3

### Library version

3.11.3

### Validation

- [X] The bug also occurs if the latest version from the [`develop`](https://github.com/nlohmann/json/tree/develop) branch is used.
- [X] I can successfully [compile and run the unit tests](https://github.com/nlohmann/json#execute-unit-tests).
Default initialized iterators are not comparable
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 152a4514b9..4ba491a831 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -35,28 +35,29 @@ jobs:
 #      - name: Test
 #        run: cd build ; ctest -j 10 --output-on-failure
 
-  macos-12:
-    runs-on: macos-12 # https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md
-    strategy:
-      matrix:
-        xcode: ['13.1', '13.2.1', '13.3.1', '13.4.1', '14.0', '14.0.1', '14.1']
-    env:
-      DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
-
-    steps:
-      - uses: actions/checkout@v4
-      - name: Run CMake
-        run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON
-      - name: Build
-        run: cmake --build build --parallel 10
-      - name: Test
-        run: cd build ; ctest -j 10 --output-on-failure
+# macos-12 is deprecated (https://github.com/actions/runner-images/issues/10721)
+#  macos-12:
+#    runs-on: macos-12 # https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md
+#    strategy:
+#      matrix:
+#        xcode: ['13.1', '13.2.1', '13.3.1', '13.4.1', '14.0', '14.0.1', '14.1']
+#    env:
+#      DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
+#
+#    steps:
+#      - uses: actions/checkout@v4
+#      - name: Run CMake
+#        run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON
+#      - name: Build
+#        run: cmake --build build --parallel 10
+#      - name: Test
+#        run: cd build ; ctest -j 10 --output-on-failure
 
   macos-13:
     runs-on: macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md
     strategy:
       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:
       DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
 
diff --git a/README.md b/README.md
index 34a79f400e..a493092827 100644
--- a/README.md
+++ b/README.md
@@ -1115,7 +1115,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)
 - 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)
 - Nvidia CUDA Compiler 11.0.221 (and possibly later)
 - Microsoft Visual C++ 2015 / Build Tools 14.0.25123.0 (and possibly later)
@@ -1146,13 +1146,7 @@ The following compilers are currently used in continuous integration at [AppVeyo
 
 | 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 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.1                                                   | 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.1                                                | macOS 13.7.1       | GitHub Actions |
diff --git a/include/nlohmann/detail/iterators/iter_impl.hpp b/include/nlohmann/detail/iterators/iter_impl.hpp
index 4447091347..106c23fb2e 100644
--- a/include/nlohmann/detail/iterators/iter_impl.hpp
+++ b/include/nlohmann/detail/iterators/iter_impl.hpp
@@ -463,7 +463,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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 >
     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_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)
         {
@@ -499,7 +503,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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 >
     bool operator!=(const IterImpl& other) const
@@ -509,7 +513,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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
     {
@@ -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_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)
         {
@@ -544,7 +553,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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
     {
@@ -553,7 +562,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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
     {
@@ -562,7 +571,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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
     {
diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp
index a6b4c3a713..09fffb3bd1 100644
--- a/single_include/nlohmann/json.hpp
+++ b/single_include/nlohmann/json.hpp
@@ -13439,7 +13439,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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 >
     bool operator==(const IterImpl& other) const
@@ -13450,7 +13450,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_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)
         {
@@ -13475,7 +13479,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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 >
     bool operator!=(const IterImpl& other) const
@@ -13485,7 +13489,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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
     {
@@ -13495,7 +13499,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_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)
         {
@@ -13520,7 +13529,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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
     {
@@ -13529,7 +13538,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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
     {
@@ -13538,7 +13547,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
 
     /*!
     @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
     {

diff --git a/tests/src/unit-iterators3.cpp b/tests/src/unit-iterators3.cpp
new file mode 100644
index 0000000000..4b5cff7e21
--- /dev/null
+++ b/tests/src/unit-iterators3.cpp
@@ -0,0 +1,35 @@
+//     __ _____ _____ _____
+//  __|  |   __|     |   | |  JSON for Modern C++ (supporting code)
+// |  |  |__   |  |  | | | |  version 3.11.3
+// |_____|_____|_____|_|___|  https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
+// SPDX-License-Identifier: MIT
+
+#include "doctest_compatibility.h"
+
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+#include <nlohmann/json.hpp>
+using nlohmann::json;
+
+#if (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1)
+    #define JSON_HAS_CPP_14
+#endif
+
+#ifdef JSON_HAS_CPP_14
+TEST_CASE_TEMPLATE("checking forward-iterators", T, // NOLINT(readability-math-missing-parentheses)
+                   std::vector<int>, std::string, nlohmann::json)
+{
+    auto it1 = typename T::iterator{};
+    auto it2 = typename T::iterator{};
+    CHECK(it1 == it2);
+    CHECK(it1 <= it2);
+    CHECK(it1 >= it2);
+    CHECK_FALSE(it1 != it2);
+    CHECK_FALSE(it1 < it2);
+    CHECK_FALSE(it1 > it2);
+}
+#endif

{"test-iterators3_cpp14": {"run": "NONE", "test": "NONE", "fix": "PASS"}}
{"test-cbor_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-locale-cpp_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-regression1_cpp17": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-abi_compat_diag": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-conversions_cpp14": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-regression1_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-comparison_legacy_cpp20": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-testsuites_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-ubjson_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_import_build": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-element_access1_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_fetch_content2_configure": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-convenience_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_fetch_content2_build": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-abi_config_default": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-conversions_cpp17": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-disabled_exceptions_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-byte_container_with_subtype_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-large_json_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_import_minver_build": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-class_parser_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-abi_config_noversion": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_add_subdirectory_configure": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-bson_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-comparison_cpp20": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-comparison_legacy_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-udt_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-class_iterator_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-binary_formats_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-json_pointer_cpp20": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-meta_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-items_cpp17": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-iterators1_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-abi_compat_inline_ns": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-windows_h_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-user_defined_input_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_fetch_content_configure": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-merge_patch_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-custom-base-class_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-json_pointer_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-diagnostics_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-regression2_cpp20": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-pointer_access_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-iterators2_cpp20": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-unicode1_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-comparison_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-reference_access_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-element_access2_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-iterators2_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_fetch_content_build": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-unicode3_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-ordered_map_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-element_access2_cpp17": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "download_test_data": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-json_patch_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-alt-string_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-modifiers_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-noexcept_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-conversions_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_target_include_directories_configure": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-deserialization_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-udl_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-wstring_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-constructor2_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_import_minver_configure": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-msgpack_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-items_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-abi_config_custom": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-class_lexer_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-to_chars_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-class_const_iterator_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_target_include_directories_build": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-inspection_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-iterators3_cpp11": {"run": "NONE", "test": "PASS", "fix": "PASS"}, "test-unicode5_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-element_access2_cpp14": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-udt_macro_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-readme_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-unicode2_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-ordered_json_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-regression2_cpp17": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-no-mem-leak-on-adl-serialize_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-capacity_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-hash_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-type_traits_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-allocator_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-constructor1_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-bjdata_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-algorithms_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-unicode4_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-regression2_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-serialization_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_import_configure": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-concepts_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-assert_macro_cpp11": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "test-deserialization_cpp20": {"run": "PASS", "test": "PASS", "fix": "PASS"}, "cmake_add_subdirectory_build": {"run": "PASS", "test": "PASS", "fix": "PASS"}}
{"test-iterators3_cpp14": {"run": "NONE", "test": "NONE", "fix": "PASS"}}
{"passed_count": 96, "failed_count": 0, "skipped_count": 0, "passed_tests": ["test-locale-cpp_cpp11", "test-comparison_legacy_cpp20", "test-testsuites_cpp11", "test-ubjson_cpp11", "cmake_fetch_content2_configure", "test-convenience_cpp11", "cmake_fetch_content2_build", "test-abi_config_default", "test-conversions_cpp17", "test-disabled_exceptions_cpp11", "cmake_import_minver_build", "test-class_parser_cpp11", "test-abi_config_noversion", "cmake_add_subdirectory_configure", "test-bson_cpp11", "test-comparison_cpp20", "test-comparison_legacy_cpp11", "test-udt_cpp11", "test-class_iterator_cpp11", "test-windows_h_cpp11", "test-merge_patch_cpp11", "test-diagnostics_cpp11", "test-pointer_access_cpp11", "test-comparison_cpp11", "test-element_access2_cpp11", "cmake_fetch_content_build", "test-element_access2_cpp17", "download_test_data", "test-alt-string_cpp11", "test-udl_cpp11", "test-wstring_cpp11", "test-constructor2_cpp11", "cmake_import_minver_configure", "test-msgpack_cpp11", "test-items_cpp11", "test-unicode5_cpp11", "test-element_access2_cpp14", "test-udt_macro_cpp11", "test-unicode2_cpp11", "test-ordered_json_cpp11", "test-regression2_cpp17", "test-capacity_cpp11", "test-allocator_cpp11", "test-constructor1_cpp11", "test-bjdata_cpp11", "test-regression2_cpp11", "test-serialization_cpp11", "test-concepts_cpp11", "test-deserialization_cpp20", "cmake_add_subdirectory_build", "test-cbor_cpp11", "test-regression1_cpp17", "test-abi_compat_diag", "test-conversions_cpp14", "test-regression1_cpp11", "cmake_import_build", "test-element_access1_cpp11", "test-byte_container_with_subtype_cpp11", "test-binary_formats_cpp11", "test-json_pointer_cpp20", "test-meta_cpp11", "test-items_cpp17", "test-iterators1_cpp11", "test-abi_compat_inline_ns", "test-user_defined_input_cpp11", "cmake_fetch_content_configure", "test-custom-base-class_cpp11", "test-json_pointer_cpp11", "test-regression2_cpp20", "test-iterators2_cpp20", "test-unicode1_cpp11", "test-reference_access_cpp11", "test-iterators2_cpp11", "test-unicode3_cpp11", "test-ordered_map_cpp11", "test-json_patch_cpp11", "test-modifiers_cpp11", "test-noexcept_cpp11", "test-conversions_cpp11", "cmake_target_include_directories_configure", "test-deserialization_cpp11", "test-abi_config_custom", "test-class_lexer_cpp11", "test-to_chars_cpp11", "test-class_const_iterator_cpp11", "cmake_target_include_directories_build", "test-inspection_cpp11", "test-readme_cpp11", "test-no-mem-leak-on-adl-serialize_cpp11", "test-hash_cpp11", "test-type_traits_cpp11", "test-algorithms_cpp11", "test-unicode4_cpp11", "cmake_import_configure", "test-assert_macro_cpp11", "test-large_json_cpp11"], "failed_tests": [], "skipped_tests": []}
{"passed_count": 97, "failed_count": 0, "skipped_count": 0, "passed_tests": ["test-locale-cpp_cpp11", "test-comparison_legacy_cpp20", "test-testsuites_cpp11", "test-ubjson_cpp11", "cmake_fetch_content2_configure", "test-convenience_cpp11", "cmake_fetch_content2_build", "test-abi_config_default", "test-conversions_cpp17", "test-disabled_exceptions_cpp11", "cmake_import_minver_build", "test-class_parser_cpp11", "test-abi_config_noversion", "cmake_add_subdirectory_configure", "test-bson_cpp11", "test-comparison_cpp20", "test-comparison_legacy_cpp11", "test-udt_cpp11", "test-class_iterator_cpp11", "test-windows_h_cpp11", "test-merge_patch_cpp11", "test-diagnostics_cpp11", "test-pointer_access_cpp11", "test-comparison_cpp11", "test-element_access2_cpp11", "cmake_fetch_content_build", "test-element_access2_cpp17", "download_test_data", "test-alt-string_cpp11", "test-udl_cpp11", "test-wstring_cpp11", "test-constructor2_cpp11", "cmake_import_minver_configure", "test-msgpack_cpp11", "test-items_cpp11", "test-unicode5_cpp11", "test-element_access2_cpp14", "test-udt_macro_cpp11", "test-unicode2_cpp11", "test-ordered_json_cpp11", "test-regression2_cpp17", "test-capacity_cpp11", "test-allocator_cpp11", "test-constructor1_cpp11", "test-bjdata_cpp11", "test-regression2_cpp11", "test-serialization_cpp11", "test-concepts_cpp11", "test-deserialization_cpp20", "cmake_add_subdirectory_build", "test-cbor_cpp11", "test-regression1_cpp17", "test-abi_compat_diag", "test-conversions_cpp14", "test-regression1_cpp11", "cmake_import_build", "test-element_access1_cpp11", "test-byte_container_with_subtype_cpp11", "test-binary_formats_cpp11", "test-json_pointer_cpp20", "test-meta_cpp11", "test-items_cpp17", "test-iterators1_cpp11", "test-abi_compat_inline_ns", "test-user_defined_input_cpp11", "cmake_fetch_content_configure", "test-custom-base-class_cpp11", "test-json_pointer_cpp11", "test-regression2_cpp20", "test-iterators2_cpp20", "test-unicode1_cpp11", "test-reference_access_cpp11", "test-iterators2_cpp11", "test-unicode3_cpp11", "test-ordered_map_cpp11", "test-json_patch_cpp11", "test-modifiers_cpp11", "test-noexcept_cpp11", "test-conversions_cpp11", "cmake_target_include_directories_configure", "test-deserialization_cpp11", "test-abi_config_custom", "test-class_lexer_cpp11", "test-to_chars_cpp11", "test-class_const_iterator_cpp11", "cmake_target_include_directories_build", "test-inspection_cpp11", "test-iterators3_cpp11", "test-readme_cpp11", "test-no-mem-leak-on-adl-serialize_cpp11", "test-hash_cpp11", "test-type_traits_cpp11", "test-algorithms_cpp11", "test-unicode4_cpp11", "cmake_import_configure", "test-assert_macro_cpp11", "test-large_json_cpp11"], "failed_tests": [], "skipped_tests": []}
{"passed_count": 98, "failed_count": 0, "skipped_count": 0, "passed_tests": ["test-locale-cpp_cpp11", "test-comparison_legacy_cpp20", "test-testsuites_cpp11", "test-ubjson_cpp11", "cmake_fetch_content2_configure", "test-convenience_cpp11", "cmake_fetch_content2_build", "test-abi_config_default", "test-conversions_cpp17", "test-disabled_exceptions_cpp11", "cmake_import_minver_build", "test-class_parser_cpp11", "test-abi_config_noversion", "cmake_add_subdirectory_configure", "test-bson_cpp11", "test-comparison_cpp20", "test-comparison_legacy_cpp11", "test-udt_cpp11", "test-class_iterator_cpp11", "test-windows_h_cpp11", "test-merge_patch_cpp11", "test-diagnostics_cpp11", "test-pointer_access_cpp11", "test-comparison_cpp11", "test-element_access2_cpp11", "cmake_fetch_content_build", "test-element_access2_cpp17", "download_test_data", "test-alt-string_cpp11", "test-udl_cpp11", "test-wstring_cpp11", "test-constructor2_cpp11", "cmake_import_minver_configure", "test-msgpack_cpp11", "test-items_cpp11", "test-unicode5_cpp11", "test-element_access2_cpp14", "test-udt_macro_cpp11", "test-unicode2_cpp11", "test-ordered_json_cpp11", "test-regression2_cpp17", "test-capacity_cpp11", "test-allocator_cpp11", "test-constructor1_cpp11", "test-bjdata_cpp11", "test-regression2_cpp11", "test-serialization_cpp11", "test-concepts_cpp11", "test-deserialization_cpp20", "cmake_add_subdirectory_build", "test-cbor_cpp11", "test-regression1_cpp17", "test-abi_compat_diag", "test-conversions_cpp14", "test-regression1_cpp11", "cmake_import_build", "test-element_access1_cpp11", "test-byte_container_with_subtype_cpp11", "test-binary_formats_cpp11", "test-json_pointer_cpp20", "test-meta_cpp11", "test-items_cpp17", "test-iterators1_cpp11", "test-abi_compat_inline_ns", "test-user_defined_input_cpp11", "cmake_fetch_content_configure", "test-custom-base-class_cpp11", "test-json_pointer_cpp11", "test-regression2_cpp20", "test-iterators2_cpp20", "test-unicode1_cpp11", "test-reference_access_cpp11", "test-iterators2_cpp11", "test-unicode3_cpp11", "test-ordered_map_cpp11", "test-iterators3_cpp14", "test-json_patch_cpp11", "test-modifiers_cpp11", "test-noexcept_cpp11", "test-conversions_cpp11", "cmake_target_include_directories_configure", "test-deserialization_cpp11", "test-abi_config_custom", "test-class_lexer_cpp11", "test-to_chars_cpp11", "test-class_const_iterator_cpp11", "cmake_target_include_directories_build", "test-inspection_cpp11", "test-iterators3_cpp11", "test-readme_cpp11", "test-no-mem-leak-on-adl-serialize_cpp11", "test-hash_cpp11", "test-type_traits_cpp11", "test-algorithms_cpp11", "test-unicode4_cpp11", "cmake_import_configure", "test-assert_macro_cpp11", "test-large_json_cpp11"], "failed_tests": [], "skipped_tests": []}