From Jason Turner

[diff.cpp14.decl]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpwlau0htw/{from.md → to.md} +35 -0
tmp/tmpwlau0htw/{from.md → to.md} RENAMED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Clause [[dcl.decl]]: declarators <a id="diff.cpp14.decl">[[diff.cpp14.decl]]</a>
2
+
3
+ [[dcl.fct]] **Change:** Make exception specifications be part of the
4
+ type system. **Rationale:** Improve type-safety. **Effect on original
5
+ feature:** Valid C++14code may fail to compile or change meaning in this
6
+ International Standard:
7
+
8
+ ``` cpp
9
+ void g1() noexcept;
10
+ void g2();
11
+ template<class T> int f(T *, T *);
12
+ int x = f(g1, g2); // ill-formed; previously well-formed
13
+ ```
14
+
15
+ [[dcl.init.aggr]] **Change:** Definition of an aggregate is extended to
16
+ apply to user-defined types with base classes. **Rationale:** To
17
+ increase convenience of aggregate initialization. **Effect on original
18
+ feature:** Valid C++14code may fail to compile or produce different
19
+ results in this International Standard; initialization from an empty
20
+ initializer list will perform aggregate initialization instead of
21
+ invoking a default constructor for the affected types:
22
+
23
+ ``` cpp
24
+ struct derived;
25
+ struct base {
26
+ friend struct derived;
27
+ private:
28
+ base();
29
+ };
30
+ struct derived : base {};
31
+
32
+ derived d1{}; // Error. The code was well-formed before.
33
+ derived d2; // still OK
34
+ ```
35
+