From 45c3677a0a606dc0d09aff88df34bc6b20b5f0a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomasz=20Kami=C5=84ski?=
Date: Mon, 20 Oct 2025 15:03:33 +0200
Subject: [PATCH 1/2] New issues from Tomasz: "CTAD function_ref of data member
pointer should produce noexcept signature"
---
xml/issue4425.xml | 67 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
create mode 100644 xml/issue4425.xml
diff --git a/xml/issue4425.xml b/xml/issue4425.xml
new file mode 100644
index 0000000000..be027694bb
--- /dev/null
+++ b/xml/issue4425.xml
@@ -0,0 +1,67 @@
+
+
+
+
+CTAD function_ref of data member pointer should produce noexcept signature
+
+Tomasz Kamiński
+20 Oct 2025
+99
+
+
+Addresses PL-005.
+
+
+For data member pointer M C::* dmp, template argument deduction in form
+std::function_ref fr(std::nontype<dmp>, x) results in
+std::function_ref<M&()>, that returns a reference to designated
+member. As accessing a data member can never throw exception and function_ref
+support noexcept qualifed function types, the deduction guide should be
+updated to produce noexcept-qualified signature.
+
+
+
+
+
+This wording is relative to .
+
+
+
+Modify as indicated:
+
+
+
+template<class F>
+function_ref(nontype_t<f>, T&&) -> function_ref<see below>;
+
+
+Let F be decltype(f).
+
+
+-6- Constraint:
+
+- (6.1) — F is of the form
+ R(G::*)(A...) cv &opt noexcept(E) for type G, or
+- (6.2) — F is of the form M G::* for type G and
+ object type M, in which case let R be invoke_result_t<F, T&>,
+ A... be an empty pack, and E be
false
+ true, or
+- (6.3) — F is of the form
+ R(*)(G, A...) noexcept(E) for type G.
+
+
+
+
+-7- Remarks: The deduced type is function_ref<R(A...) noexcept(E)>.
+
+
+
+
+
+
+
+
+
+
+
+
From 9a7451fd86e4c6f5283a99be1f2c7680de1757a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomasz=20Kami=C5=84ski?=
Date: Mon, 20 Oct 2025 15:17:05 +0200
Subject: [PATCH 2/2] Small fix
---
xml/issue4425.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xml/issue4425.xml b/xml/issue4425.xml
index be027694bb..dbf6aaf6df 100644
--- a/xml/issue4425.xml
+++ b/xml/issue4425.xml
@@ -41,7 +41,7 @@ function_ref(nontype_t<f>, T&&) -> function_ref<see belowConstraint:
- (6.1) — F is of the form
- R(G::*)(A...) cv &opt noexcept(E) for type G, or
+ R(G::*)(A...) cv &opt noexcept(E) for type G, or
- (6.2) — F is of the form M G::* for type G and
object type M, in which case let R be invoke_result_t<F, T&>,
A... be an empty pack, and E be
false