From Jason Turner

[diff.cpp03.temp]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp8e60irnd/{from.md → to.md} +11 -8
tmp/tmp8e60irnd/{from.md → to.md} RENAMED
@@ -1,28 +1,31 @@
1
  ### [[temp]]: templates <a id="diff.cpp03.temp">[[diff.cpp03.temp]]</a>
2
 
3
- **Change:** Remove `export`. **Rationale:** No implementation consensus.
4
- **Effect on original feature:** A valid C++03 declaration containing
5
- `export` is ill-formed in this International Standard.
 
 
6
 
7
  **Change:** Remove whitespace requirement for nested closing template
8
  right angle brackets. **Rationale:** Considered a persistent but minor
9
  annoyance. Template aliases representing non-class types would
10
  exacerbate whitespace issues. **Effect on original feature:** Change to
11
  semantics of well-defined expression. A valid C++03 expression
12
  containing a right angle bracket (“`>`”) followed immediately by another
13
  right angle bracket may now be treated as closing two templates. For
14
- example, the following code is valid in C++03 because “`>>`” is a
15
- right-shift operator, but invalid in this International Standard because
16
- “`>>`” closes two templates.
17
 
18
  ``` cpp
19
  template <class T> struct X { };
20
  template <int N> struct Y { };
21
  X< Y< 1 >> 2 > > x;
22
  ```
23
 
 
 
 
24
  **Change:** Allow dependent calls of functions with internal linkage.
25
  **Rationale:** Overly constrained, simplify overload resolution rules.
26
- **Effect on original feature:** A valid C++03 program could get a
27
- different result than this International Standard.
28
 
 
1
  ### [[temp]]: templates <a id="diff.cpp03.temp">[[diff.cpp03.temp]]</a>
2
 
3
+ **Change:** Repurpose `export` for modules
4
+ [[module]], [[cpp.module]], [[cpp.import]]. **Rationale:** No
5
+ implementation consensus for the C++03 meaning of `export`. **Effect on
6
+ original feature:** A valid C++03 program containing `export` is
7
+ ill-formed in this revision of C++.
8
 
9
  **Change:** Remove whitespace requirement for nested closing template
10
  right angle brackets. **Rationale:** Considered a persistent but minor
11
  annoyance. Template aliases representing non-class types would
12
  exacerbate whitespace issues. **Effect on original feature:** Change to
13
  semantics of well-defined expression. A valid C++03 expression
14
  containing a right angle bracket (“`>`”) followed immediately by another
15
  right angle bracket may now be treated as closing two templates. For
16
+ example:
 
 
17
 
18
  ``` cpp
19
  template <class T> struct X { };
20
  template <int N> struct Y { };
21
  X< Y< 1 >> 2 > > x;
22
  ```
23
 
24
+ This code is valid in C++03 because “`>>`” is a right-shift operator,
25
+ but invalid in this revision of C++ because “`>>`” closes two templates.
26
+
27
  **Change:** Allow dependent calls of functions with internal linkage.
28
  **Rationale:** Overly constrained, simplify overload resolution rules.
29
+ **Effect on original feature:** A valid C++03 program can get a
30
+ different result in this revision of C++.
31