tmp/tmpf40sv2k4/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### Clause [[except]]: exception handling <a id="diff.cpp14.except">[[diff.cpp14.except]]</a>
|
| 2 |
+
|
| 3 |
+
[[except.spec]] **Change:** Remove dynamic exception specifications.
|
| 4 |
+
**Rationale:** Dynamic exception specifications were a deprecated
|
| 5 |
+
feature that was complex and brittle in use. They interacted badly with
|
| 6 |
+
the type system, which became a more significant issue in this
|
| 7 |
+
International Standard where (non-dynamic) exception specifications are
|
| 8 |
+
part of the function type. **Effect on original feature:** A valid
|
| 9 |
+
C++14function declaration, member function declaration, function pointer
|
| 10 |
+
declaration, or function reference declaration, if it has a potentially
|
| 11 |
+
throwing dynamic exception specification, will be rejected as ill-formed
|
| 12 |
+
in this International Standard. Violating a non-throwing dynamic
|
| 13 |
+
exception specification will call `terminate` rather than `unexpected`
|
| 14 |
+
and might not perform stack unwinding prior to such a call.
|
| 15 |
+
|