From Jason Turner

[func.require]

Diff to HTML by rtfpessoa

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(t1)>> ||`
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(t1)>> ||`
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