From 7fa4254c5980efcea1608818230b03cc09e00cdf Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Sun, 30 Jun 2024 23:32:51 +0800 Subject: [PATCH 1/2] Implement LWG-4106 --- stl/inc/format | 2 -- .../tests/P0645R10_text_formatting_custom_formatting/test.cpp | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/stl/inc/format b/stl/inc/format index 0dceebb0509..edd29c32277 100644 --- a/stl/inc/format +++ b/stl/inc/format @@ -2079,8 +2079,6 @@ class _Format_arg_store<_Context> {}; _EXPORT_STD template class basic_format_args { public: - basic_format_args() noexcept = default; - basic_format_args(const _Format_arg_store<_Context>&) noexcept {} template diff --git a/tests/std/tests/P0645R10_text_formatting_custom_formatting/test.cpp b/tests/std/tests/P0645R10_text_formatting_custom_formatting/test.cpp index 6a9db58b132..9c82048c7ab 100644 --- a/tests/std/tests/P0645R10_text_formatting_custom_formatting/test.cpp +++ b/tests/std/tests/P0645R10_text_formatting_custom_formatting/test.cpp @@ -275,6 +275,9 @@ void test_basic_format_context_construction() { static_assert(!is_constructible_with_trailing_empty_brace_impl); static_assert(!is_constructible_with_trailing_empty_brace_impl>); static_assert(!is_constructible_with_trailing_empty_brace_impl&>); + + // Also test LWG-4106 "basic_format_args should not be default-constructible" + static_assert(!is_default_constructible_v>); } // Test GH-4636 ": Call to next_arg_id may result in unexpected error (regression)" From 07a02988be035eefc09f428170a30eb4ad60849c Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Mon, 1 Jul 2024 00:04:40 +0800 Subject: [PATCH 2/2] Block libcxx tests --- tests/libcxx/expected_results.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index d7b14591956..0e223193b5a 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -168,6 +168,10 @@ std/utilities/memory/specialized.algorithms/uninitialized.move/ranges_uninitiali std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer.value/ctor.default.pass.cpp FAIL std/ranges/range.adaptors/range.lazy.split/range.lazy.split.outer.value/ctor.iter.pass.cpp FAIL +# libc++ doesn't implement LWG-4106 +std/utilities/format/format.arguments/format.args/ctor.pass.cpp FAIL +std/utilities/format/format.arguments/format.args/get.pass.cpp FAIL + # If any feature-test macro test is failing, this consolidated test will also fail. std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp FAIL