tmp/tmpg9b2fkyt/{from.md → to.md}
RENAMED
|
@@ -22,5 +22,23 @@ is `true`.
|
|
| 22 |
wrapper [[term.perfect.forwarding.call.wrapper]] `g` with call pattern
|
| 23 |
`!invoke(fd, call_args...)`.
|
| 24 |
|
| 25 |
*Throws:* Any exception thrown by the initialization of `fd`.
|
| 26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
wrapper [[term.perfect.forwarding.call.wrapper]] `g` with call pattern
|
| 23 |
`!invoke(fd, call_args...)`.
|
| 24 |
|
| 25 |
*Throws:* Any exception thrown by the initialization of `fd`.
|
| 26 |
|
| 27 |
+
``` cpp
|
| 28 |
+
template<auto f> constexpr unspecified not_fn() noexcept;
|
| 29 |
+
```
|
| 30 |
+
|
| 31 |
+
In the text that follows:
|
| 32 |
+
|
| 33 |
+
- `F` is the type of `f`,
|
| 34 |
+
- `g` is a value of the result of a `not_fn` invocation,
|
| 35 |
+
- `call_args` is an argument pack used in a function call
|
| 36 |
+
expression [[expr.call]] of `g`.
|
| 37 |
+
|
| 38 |
+
*Mandates:* If `is_pointer_v<F> || is_member_pointer_v<F>` is `true`,
|
| 39 |
+
then `f != nullptr` is `true`.
|
| 40 |
+
|
| 41 |
+
*Returns:* A perfect forwarding call wrapper [[func.require]] `g` that
|
| 42 |
+
does not have state entities, and has the call pattern
|
| 43 |
+
`!invoke(f, call_args...)`.
|
| 44 |
+
|