diff --git a/test/src/unit-noexcept.cpp b/test/src/unit-noexcept.cpp index ed362f65..f2fbc8e6 100644 --- a/test/src/unit-noexcept.cpp +++ b/test/src/unit-noexcept.cpp @@ -58,10 +58,19 @@ static_assert(noexcept(j.get<pod>()), ""); static_assert(not noexcept(j.get<pod_bis>()), ""); static_assert(noexcept(json(pod{})), ""); -// for ERR60-CPP (https://github.com/nlohmann/json/issues/531) -static_assert(std::is_nothrow_copy_constructible<json::exception>::value, "json::exception must be nothrow copy constructible"); -static_assert(std::is_nothrow_copy_constructible<json::parse_error>::value, "json::parse_error must be nothrow copy constructible"); -static_assert(std::is_nothrow_copy_constructible<json::invalid_iterator>::value, "json::invalid_iterator must be nothrow copy constructible"); -static_assert(std::is_nothrow_copy_constructible<json::type_error>::value, "json::type_error must be nothrow copy constructible"); -static_assert(std::is_nothrow_copy_constructible<json::out_of_range>::value, "json::out_of_range must be nothrow copy constructible"); -static_assert(std::is_nothrow_copy_constructible<json::other_error>::value, "json::other_error must be nothrow copy constructible"); +TEST_CASE("runtime checks") +{ + SECTION("nothrow-copy-constructible exceptions") + { + // for ERR60-CPP (https://github.com/nlohmann/json/issues/531) + if (std::is_nothrow_copy_constructible<std::runtime_error>::value) + { + CHECK(std::is_nothrow_copy_constructible<json::exception>::value); + CHECK(std::is_nothrow_copy_constructible<json::parse_error>::value); + CHECK(std::is_nothrow_copy_constructible<json::invalid_iterator>::value); + CHECK(std::is_nothrow_copy_constructible<json::type_error>::value); + CHECK(std::is_nothrow_copy_constructible<json::out_of_range>::value); + CHECK(std::is_nothrow_copy_constructible<json::other_error>::value); + } + } +}