tmp/tmp6hityanx/{from.md → to.md}
RENAMED
|
@@ -1,19 +1,19 @@
|
|
| 1 |
### Requirements <a id="func.require">[[func.require]]</a>
|
| 2 |
|
| 3 |
Define `INVOKE(f, t₁, t₂, …, t_N)` as follows:
|
| 4 |
|
| 5 |
- `(t₁.*f)(t₂, …, t_N)` when `f` is a pointer to a member function of a
|
| 6 |
-
class `T` and `is_same_v<T, remove_cvref_t<decltype(
|
| 7 |
`is_base_of_v<T, remove_cvref_t<decltype(t₁)>>` is `true`;
|
| 8 |
- `(t₁.get().*f)(t₂, …, t_N)` when `f` is a pointer to a member function
|
| 9 |
of a class `T` and `remove_cvref_t<decltype(t₁)>` is a specialization
|
| 10 |
of `reference_wrapper`;
|
| 11 |
- `((*t₁).*f)(t₂, …, t_N)` when `f` is a pointer to a member function of
|
| 12 |
a class `T` and `t₁` does not satisfy the previous two items;
|
| 13 |
- `t₁.*f` when N = 1 and `f` is a pointer to data member of a class `T`
|
| 14 |
-
and `is_same_v<T, remove_cvref_t<decltype(
|
| 15 |
`is_base_of_v<T, remove_cvref_t<decltype(t₁)>>` is `true`;
|
| 16 |
- `t₁.get().*f` when N = 1 and `f` is a pointer to data member of a
|
| 17 |
class `T` and `remove_cvref_t<decltype(t₁)>` is a specialization of
|
| 18 |
`reference_wrapper`;
|
| 19 |
- `(*t₁).*f` when N = 1 and `f` is a pointer to data member of a class
|
|
|
|
| 1 |
### Requirements <a id="func.require">[[func.require]]</a>
|
| 2 |
|
| 3 |
Define `INVOKE(f, t₁, t₂, …, t_N)` as follows:
|
| 4 |
|
| 5 |
- `(t₁.*f)(t₂, …, t_N)` when `f` is a pointer to a member function of a
|
| 6 |
+
class `T` and `is_same_v<T, remove_cvref_t<decltype(t₁)>> ||`
|
| 7 |
`is_base_of_v<T, remove_cvref_t<decltype(t₁)>>` is `true`;
|
| 8 |
- `(t₁.get().*f)(t₂, …, t_N)` when `f` is a pointer to a member function
|
| 9 |
of a class `T` and `remove_cvref_t<decltype(t₁)>` is a specialization
|
| 10 |
of `reference_wrapper`;
|
| 11 |
- `((*t₁).*f)(t₂, …, t_N)` when `f` is a pointer to a member function of
|
| 12 |
a class `T` and `t₁` does not satisfy the previous two items;
|
| 13 |
- `t₁.*f` when N = 1 and `f` is a pointer to data member of a class `T`
|
| 14 |
+
and `is_same_v<T, remove_cvref_t<decltype(t₁)>> ||`
|
| 15 |
`is_base_of_v<T, remove_cvref_t<decltype(t₁)>>` is `true`;
|
| 16 |
- `t₁.get().*f` when N = 1 and `f` is a pointer to data member of a
|
| 17 |
class `T` and `remove_cvref_t<decltype(t₁)>` is a specialization of
|
| 18 |
`reference_wrapper`;
|
| 19 |
- `(*t₁).*f` when N = 1 and `f` is a pointer to data member of a class
|