diff --git a/xml/issue4316.xml b/xml/issue4316.xml index 2bdc9774c2..a08766fb5b 100644 --- a/xml/issue4316.xml +++ b/xml/issue4316.xml @@ -41,9 +41,91 @@ While the intent seems clear, this should be rephrased to be more technically co

Set priority to 1 after reflector poll.

+ +2025-10-27; Tomasz provides wording. + +

+This wording is relative to . +

+ +
    + +
  1. Modify as indicated:

    + +
    +
    +

    +-1- For value `x` of type `info`, and prvalue constant expression `X` that computes the +reflection held by `x`, let TARG-SPLICE(x) be: +

      +
    • -1.1- template [: X :] if `is_template(x)` is `true`, otherwise
    • +
    • -1.2- typename [: X :] if `is_type(x)` is `true`, otherwise
    • +
    • -1.3- ([: X :])
    • +
    +

    +
    + +
    +template<reflection_range R = initializer_list<info>>
    +  consteval bool can_substitute(info templ, R&& arguments);
    +
    +
    +

    +-1- Let `Z` be the template represented by `templ` and let `Args...` be a +sequence of prvalue constant expressions that compute the reflections held by +the elements of `arguments`, in order. +Let n be the number of elements in `arguments`, and ei +be the ith element of `arguments`. +

    +

    +-2- Returns: `true` if Z<[:Args:]...TARG-SPLICE(e0), +..., TARG-SPLICE(en-1)> is a valid template-id +() that does not name a function whose type contains an undeduced placeholder type. +Otherwise, `false`. +

    +

    +-3- Throws: `meta::exception` unless `templ` represents a template, and every reflection +in `arguments` represents a construct usable as a template argument (). +

    +

    +-4- [Note: If forming Z<[:Args:]...TARG-SPLICE(e0), +..., TARG-SPLICE(en-1)> leads to a failure outside of the immediate +context, the program is ill-formed. — end note] +

    +
    + +
    +template<reflection_range R = initializer_list<info>>
    +  consteval info substitute(info templ, R&& arguments);
    +
    +
    +

    +-5- Let `Z` be the template represented by `templ` and let `Args...` be a +sequence of prvalue constant expressions that compute the reflections held by +the elements of `arguments`, in order. +Let n be the number of elements in `arguments`, and ei +be the ith element of `arguments`. +

    +

    +-6- Returns: ^^Z<[:Args:]...TARG-SPLICE(e0) +..., TARG-SPLICE(en-1)>.

    +

    +-7- Throws: `meta::exception` unless `can_substitute(templ, arguments)` is `true`. +

    +

    +-8- [Note: If forming Z<[:Args:]...TARG-SPLICE(e0), +..., TARG-SPLICE(en-1)> leads to a failure outside of the immediate +context, the program is ill-formed. — end note] +

    +
    + +
    +
  2. +
+