From Jason Turner

[func.bind.front]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp5zjbrued/{from.md → to.md} +0 -41
tmp/tmp5zjbrued/{from.md → to.md} RENAMED
@@ -1,41 +0,0 @@
1
- ### Function template `bind_front` <a id="func.bind.front">[[func.bind.front]]</a>
2
-
3
- ``` cpp
4
- template<class F, class... Args>
5
- constexpr unspecified bind_front(F&& f, Args&&... args);
6
- ```
7
-
8
- In the text that follows:
9
-
10
- - `g` is a value of the result of a `bind_front` invocation,
11
- - `FD` is the type `decay_t<F>`,
12
- - `fd` is the target object of `g` [[func.def]] of type `FD`,
13
- direct-non-list-initialized with `std::forward<F>(f)`,
14
- - `BoundArgs` is a pack that denotes `decay_t<Args>...`,
15
- - `bound_args` is a pack of bound argument entities of `g` [[func.def]]
16
- of types `BoundArgs...`, direct-non-list-initialized with
17
- `std::forward<Args>(args)...`, respectively, and
18
- - `call_args` is an argument pack used in a function call
19
- expression [[expr.call]] of `g`.
20
-
21
- *Mandates:*
22
-
23
- ``` cpp
24
- is_constructible_v<FD, F> &&
25
- is_move_constructible_v<FD> &&
26
- (is_constructible_v<BoundArgs, Args> && ...) &&
27
- (is_move_constructible_v<BoundArgs> && ...)
28
- ```
29
-
30
- is `true`.
31
-
32
- *Preconditions:* `FD` meets the *Cpp17MoveConstructible* requirements.
33
- For each `Tᵢ` in `BoundArgs`, if `Tᵢ` is an object type, `Tᵢ` meets the
34
- *Cpp17MoveConstructible* requirements.
35
-
36
- *Returns:* A perfect forwarding call wrapper `g` with call pattern
37
- `invoke(fd, bound_args..., call_args...)`.
38
-
39
- *Throws:* Any exception thrown by the initialization of the state
40
- entities of `g` [[func.def]].
41
-