From Jason Turner

[diff.cpp17.class]

Diff to HTML by rtfpessoa

tmp/tmp4vvi700j/{from.md → to.md} RENAMED
@@ -4,11 +4,11 @@
4
  immediately after an `explicit` *decl-specifier* in a constructor
5
  declaration. The *conversion-function-id* can no longer be used
6
  parenthesized immediately after an `explicit` *decl-specifier* in a
7
  conversion function declaration. **Rationale:** Necessary for new
8
  functionality. **Effect on original feature:** Valid C++17 code may fail
9
- to compile in this International Standard. For example:
10
 
11
  ``` cpp
12
  struct S {
13
  explicit (S)(const S&); // ill-formed; previously well-formed
14
  explicit (operator int)(); // ill-formed; previously well-formed
@@ -17,12 +17,12 @@ struct S {
17
  ```
18
 
19
  **Change:** A *simple-template-id* is no longer valid as the
20
  *declarator-id* of a constructor or destructor. **Rationale:** Remove
21
  potentially error-prone option for redundancy. **Effect on original
22
- feature:** Valid C++17 code may fail to compile in this International
23
- Standard. For example:
24
 
25
  ``` cpp
26
  template<class T>
27
  struct A {
28
  A<T>(); // error: simple-template-id not allowed for constructor
@@ -35,11 +35,11 @@ struct A {
35
  a constructor taking an rvalue reference to a type different from that
36
  of the returned expression. Function and catch-clause parameters can be
37
  thrown using move constructors. **Rationale:** Side effect of making it
38
  easier to write more efficient code that takes advantage of moves.
39
  **Effect on original feature:** Valid C++17 code may fail to compile or
40
- have different semantics in this International Standard. For example:
41
 
42
  ``` cpp
43
  struct base {
44
  base();
45
  base(base const &);
 
4
  immediately after an `explicit` *decl-specifier* in a constructor
5
  declaration. The *conversion-function-id* can no longer be used
6
  parenthesized immediately after an `explicit` *decl-specifier* in a
7
  conversion function declaration. **Rationale:** Necessary for new
8
  functionality. **Effect on original feature:** Valid C++17 code may fail
9
+ to compile in this revision of C++. For example:
10
 
11
  ``` cpp
12
  struct S {
13
  explicit (S)(const S&); // ill-formed; previously well-formed
14
  explicit (operator int)(); // ill-formed; previously well-formed
 
17
  ```
18
 
19
  **Change:** A *simple-template-id* is no longer valid as the
20
  *declarator-id* of a constructor or destructor. **Rationale:** Remove
21
  potentially error-prone option for redundancy. **Effect on original
22
+ feature:** Valid C++17 code may fail to compile in this revision of C++.
23
+ For example:
24
 
25
  ``` cpp
26
  template<class T>
27
  struct A {
28
  A<T>(); // error: simple-template-id not allowed for constructor
 
35
  a constructor taking an rvalue reference to a type different from that
36
  of the returned expression. Function and catch-clause parameters can be
37
  thrown using move constructors. **Rationale:** Side effect of making it
38
  easier to write more efficient code that takes advantage of moves.
39
  **Effect on original feature:** Valid C++17 code may fail to compile or
40
+ have different semantics in this revision of C++. For example:
41
 
42
  ``` cpp
43
  struct base {
44
  base();
45
  base(base const &);