From Jason Turner

[indirectcallable.indirectinvocable]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpn4f6coe4/{from.md → to.md} +4 -10
tmp/tmpn4f6coe4/{from.md → to.md} RENAMED
@@ -9,61 +9,55 @@ namespace std {
9
  concept indirectly_unary_invocable =
10
  indirectly_readable<I> &&
11
  copy_constructible<F> &&
12
  invocable<F&, indirect-value-t<I>> &&
13
  invocable<F&, iter_reference_t<I>> &&
14
- invocable<F&, iter_common_reference_t<I>> &&
15
  common_reference_with<
16
  invoke_result_t<F&, indirect-value-t<I>>,
17
  invoke_result_t<F&, iter_reference_t<I>>>;
18
 
19
  template<class F, class I>
20
  concept indirectly_regular_unary_invocable =
21
  indirectly_readable<I> &&
22
  copy_constructible<F> &&
23
  regular_invocable<F&, indirect-value-t<I>> &&
24
  regular_invocable<F&, iter_reference_t<I>> &&
25
- regular_invocable<F&, iter_common_reference_t<I>> &&
26
  common_reference_with<
27
  invoke_result_t<F&, indirect-value-t<I>>,
28
  invoke_result_t<F&, iter_reference_t<I>>>;
29
 
30
  template<class F, class I>
31
  concept indirect_unary_predicate =
32
  indirectly_readable<I> &&
33
  copy_constructible<F> &&
34
  predicate<F&, indirect-value-t<I>> &&
35
- predicate<F&, iter_reference_t<I>> &&
36
- predicate<F&, iter_common_reference_t<I>>;
37
 
38
  template<class F, class I1, class I2>
39
  concept indirect_binary_predicate =
40
  indirectly_readable<I1> && indirectly_readable<I2> &&
41
  copy_constructible<F> &&
42
  predicate<F&, indirect-value-t<I1>, indirect-value-t<I2>> &&
43
  predicate<F&, indirect-value-t<I1>, iter_reference_t<I2>> &&
44
  predicate<F&, iter_reference_t<I1>, indirect-value-t<I2>> &&
45
- predicate<F&, iter_reference_t<I1>, iter_reference_t<I2>> &&
46
- predicate<F&, iter_common_reference_t<I1>, iter_common_reference_t<I2>>;
47
 
48
  template<class F, class I1, class I2 = I1>
49
  concept indirect_equivalence_relation =
50
  indirectly_readable<I1> && indirectly_readable<I2> &&
51
  copy_constructible<F> &&
52
  equivalence_relation<F&, indirect-value-t<I1>, indirect-value-t<I2>> &&
53
  equivalence_relation<F&, indirect-value-t<I1>, iter_reference_t<I2>> &&
54
  equivalence_relation<F&, iter_reference_t<I1>, indirect-value-t<I2>> &&
55
- equivalence_relation<F&, iter_reference_t<I1>, iter_reference_t<I2>> &&
56
- equivalence_relation<F&, iter_common_reference_t<I1>, iter_common_reference_t<I2>>;
57
 
58
  template<class F, class I1, class I2 = I1>
59
  concept indirect_strict_weak_order =
60
  indirectly_readable<I1> && indirectly_readable<I2> &&
61
  copy_constructible<F> &&
62
  strict_weak_order<F&, indirect-value-t<I1>, indirect-value-t<I2>> &&
63
  strict_weak_order<F&, indirect-value-t<I1>, iter_reference_t<I2>> &&
64
  strict_weak_order<F&, iter_reference_t<I1>, indirect-value-t<I2>> &&
65
- strict_weak_order<F&, iter_reference_t<I1>, iter_reference_t<I2>> &&
66
- strict_weak_order<F&, iter_common_reference_t<I1>, iter_common_reference_t<I2>>;
67
  }
68
  ```
69
 
 
9
  concept indirectly_unary_invocable =
10
  indirectly_readable<I> &&
11
  copy_constructible<F> &&
12
  invocable<F&, indirect-value-t<I>> &&
13
  invocable<F&, iter_reference_t<I>> &&
 
14
  common_reference_with<
15
  invoke_result_t<F&, indirect-value-t<I>>,
16
  invoke_result_t<F&, iter_reference_t<I>>>;
17
 
18
  template<class F, class I>
19
  concept indirectly_regular_unary_invocable =
20
  indirectly_readable<I> &&
21
  copy_constructible<F> &&
22
  regular_invocable<F&, indirect-value-t<I>> &&
23
  regular_invocable<F&, iter_reference_t<I>> &&
 
24
  common_reference_with<
25
  invoke_result_t<F&, indirect-value-t<I>>,
26
  invoke_result_t<F&, iter_reference_t<I>>>;
27
 
28
  template<class F, class I>
29
  concept indirect_unary_predicate =
30
  indirectly_readable<I> &&
31
  copy_constructible<F> &&
32
  predicate<F&, indirect-value-t<I>> &&
33
+ predicate<F&, iter_reference_t<I>>;
 
34
 
35
  template<class F, class I1, class I2>
36
  concept indirect_binary_predicate =
37
  indirectly_readable<I1> && indirectly_readable<I2> &&
38
  copy_constructible<F> &&
39
  predicate<F&, indirect-value-t<I1>, indirect-value-t<I2>> &&
40
  predicate<F&, indirect-value-t<I1>, iter_reference_t<I2>> &&
41
  predicate<F&, iter_reference_t<I1>, indirect-value-t<I2>> &&
42
+ predicate<F&, iter_reference_t<I1>, iter_reference_t<I2>>;
 
43
 
44
  template<class F, class I1, class I2 = I1>
45
  concept indirect_equivalence_relation =
46
  indirectly_readable<I1> && indirectly_readable<I2> &&
47
  copy_constructible<F> &&
48
  equivalence_relation<F&, indirect-value-t<I1>, indirect-value-t<I2>> &&
49
  equivalence_relation<F&, indirect-value-t<I1>, iter_reference_t<I2>> &&
50
  equivalence_relation<F&, iter_reference_t<I1>, indirect-value-t<I2>> &&
51
+ equivalence_relation<F&, iter_reference_t<I1>, iter_reference_t<I2>>;
 
52
 
53
  template<class F, class I1, class I2 = I1>
54
  concept indirect_strict_weak_order =
55
  indirectly_readable<I1> && indirectly_readable<I2> &&
56
  copy_constructible<F> &&
57
  strict_weak_order<F&, indirect-value-t<I1>, indirect-value-t<I2>> &&
58
  strict_weak_order<F&, indirect-value-t<I1>, iter_reference_t<I2>> &&
59
  strict_weak_order<F&, iter_reference_t<I1>, indirect-value-t<I2>> &&
60
+ strict_weak_order<F&, iter_reference_t<I1>, iter_reference_t<I2>>;
 
61
  }
62
  ```
63