From Jason Turner

[diff.special]

Diff to HTML by rtfpessoa

tmp/tmpvyy4666b/{from.md → to.md} RENAMED
@@ -1,17 +1,17 @@
1
  ### Clause [[special]]: special member functions <a id="diff.special">[[diff.special]]</a>
2
 
3
- [[class.copy]] **Change:** Copying volatile objects
4
 
5
  The implicitly-declared copy constructor and implicitly-declared copy
6
  assignment operator cannot make a copy of a volatile lvalue. For
7
  example, the following is valid in ISO C:
8
 
9
  ``` cpp
10
  struct X { int i; };
11
  volatile struct X x1 = {0};
12
- struct X x2(x1); // invalid C++
13
  struct X x3;
14
  x3 = x1; // also invalid C++
15
  ```
16
 
17
  **Rationale:** Several alternatives were debated at length. Changing the
@@ -21,9 +21,8 @@ two alternative signatures for these implicitly-defined operations
21
  raised unanswered concerns about creating ambiguities and complicating
22
  the rules that specify the formation of these operators according to the
23
  bases and members. **Effect on original feature:** Deletion of
24
  semantically well-defined feature. Semantic transformation. If volatile
25
  semantics are required for the copy, a user-declared constructor or
26
- assignment must be provided. This user-declared constructor may be
27
- explicitly defaulted. If non-volatile semantics are required, an
28
  explicit `const_cast` can be used. Seldom.
29
 
 
1
  ### Clause [[special]]: special member functions <a id="diff.special">[[diff.special]]</a>
2
 
3
+ [[class.copy]] **Change:** Copying volatile objects.
4
 
5
  The implicitly-declared copy constructor and implicitly-declared copy
6
  assignment operator cannot make a copy of a volatile lvalue. For
7
  example, the following is valid in ISO C:
8
 
9
  ``` cpp
10
  struct X { int i; };
11
  volatile struct X x1 = {0};
12
+ struct X x2 = x1; // invalid C++
13
  struct X x3;
14
  x3 = x1; // also invalid C++
15
  ```
16
 
17
  **Rationale:** Several alternatives were debated at length. Changing the
 
21
  raised unanswered concerns about creating ambiguities and complicating
22
  the rules that specify the formation of these operators according to the
23
  bases and members. **Effect on original feature:** Deletion of
24
  semantically well-defined feature. Semantic transformation. If volatile
25
  semantics are required for the copy, a user-declared constructor or
26
+ assignment must be provided. If non-volatile semantics are required, an
 
27
  explicit `const_cast` can be used. Seldom.
28