diff --git a/xml/issue4425.xml b/xml/issue4425.xml new file mode 100644 index 0000000000..dbf6aaf6df --- /dev/null +++ b/xml/issue4425.xml @@ -0,0 +1,67 @@ + + + + +CTAD <tt>function_ref</tt> of data member pointer should produce <tt>noexcept</tt> 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 . +

+
    + +
  1. Modify as indicated:

    + +
    +
    +template<class F>
    +function_ref(nontype_t<f>, T&&) -> function_ref<see below>;
    +
    +
    +

    Let F be decltype(f).

    + +

    +-6- Constraint: +

      +
    1. (6.1) — F is of the form + R(G::*)(A...) cv &opt noexcept(E) for type G, or
    2. +
    3. (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
    4. +
    5. (6.3) — F is of the form + R(*)(G, A...) noexcept(E) for type G.
    6. +
    +

    + +

    +-7- Remarks: The deduced type is function_ref<R(A...) noexcept(E)>. +

    + +
    +
    + +
  2. +
+ + +
+ +