From Jason Turner

[diff.cpp20.concepts]

Diff to HTML by rtfpessoa

tmp/tmp2a3x4a6g/{from.md → to.md} RENAMED
@@ -3,12 +3,13 @@
3
  **Change:** Replace `common_reference_with` in
4
  `three_way_comparable_with`, `equality_comparable_with`, and
5
  `totally_ordered_with` with an exposition-only concept. **Rationale:**
6
  Allow uncopyable, but movable, types to model these concepts. **Effect
7
  on original feature:** Valid C++20 code relying on subsumption with
8
- `common_reference_with` may fail to compile in this revision of C++. For
9
- example:
 
10
 
11
  ``` cpp
12
  template<class T, class U>
13
  requires equality_comparable_with<T, U>
14
  bool attempted_equals(const T&, const U& u); // previously selected overload
@@ -20,5 +21,7 @@ bool attempted_equals(const T& t, const U& u); // ambiguous overload; previousl
20
  bool test(shared_ptr<int> p) {
21
  return attempted_equals(p, nullptr); // ill-formed; previously well-formed
22
  }
23
  ```
24
 
 
 
 
3
  **Change:** Replace `common_reference_with` in
4
  `three_way_comparable_with`, `equality_comparable_with`, and
5
  `totally_ordered_with` with an exposition-only concept. **Rationale:**
6
  Allow uncopyable, but movable, types to model these concepts. **Effect
7
  on original feature:** Valid C++20 code relying on subsumption with
8
+ `common_reference_with` may fail to compile in this revision of C++.
9
+
10
+ [*Example 1*:
11
 
12
  ``` cpp
13
  template<class T, class U>
14
  requires equality_comparable_with<T, U>
15
  bool attempted_equals(const T&, const U& u); // previously selected overload
 
21
  bool test(shared_ptr<int> p) {
22
  return attempted_equals(p, nullptr); // ill-formed; previously well-formed
23
  }
24
  ```
25
 
26
+ — *end example*]
27
+