tmp/tmpk39_bpwf/{from.md → to.md}
RENAMED
|
@@ -151,18 +151,10 @@ char *c = (char *) b;
|
|
| 151 |
|
| 152 |
This is fairly widely used but it is good programming practice to add
|
| 153 |
the cast when assigning pointer-to-void to pointer-to-object. Some ISO C
|
| 154 |
translators will give a warning if the cast is not used.
|
| 155 |
|
| 156 |
-
[[conv.ptr]] **Change:** Only pointers to non-const and non-volatile
|
| 157 |
-
objects may be implicitly converted to `void*` **Rationale:** This
|
| 158 |
-
improves type safety. **Effect on original feature:** Deletion of
|
| 159 |
-
semantically well-defined feature. Could be automated. A C program
|
| 160 |
-
containing such an implicit conversion from, e.g.,
|
| 161 |
-
pointer-to-const-object to void\* will receive a diagnostic message. The
|
| 162 |
-
correction is to add an explicit cast. Seldom.
|
| 163 |
-
|
| 164 |
### Clause [[expr]]: expressions <a id="diff.expr">[[diff.expr]]</a>
|
| 165 |
|
| 166 |
[[expr.call]] **Change:** Implicit declaration of functions is not
|
| 167 |
allowed **Rationale:** The type-safe nature of C++. **Effect on original
|
| 168 |
feature:** Deletion of semantically well-defined feature. Note: the
|
|
@@ -461,10 +453,18 @@ original feature:** Change to semantics of well-defined feature.
|
|
| 461 |
Semantic transformation. If the hidden name that needs to be accessed is
|
| 462 |
at global scope, the `::` C++operator can be used. If the hidden name is
|
| 463 |
at block scope, either the type or the struct tag has to be renamed.
|
| 464 |
Seldom.
|
| 465 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 466 |
[[class.nest]] **Change:** In C++, the name of a nested class is local
|
| 467 |
to its enclosing class. In C the name of the nested class belongs to the
|
| 468 |
same scope as the name of the outermost enclosing class.
|
| 469 |
|
| 470 |
Example:
|
|
|
|
| 151 |
|
| 152 |
This is fairly widely used but it is good programming practice to add
|
| 153 |
the cast when assigning pointer-to-void to pointer-to-object. Some ISO C
|
| 154 |
translators will give a warning if the cast is not used.
|
| 155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
### Clause [[expr]]: expressions <a id="diff.expr">[[diff.expr]]</a>
|
| 157 |
|
| 158 |
[[expr.call]] **Change:** Implicit declaration of functions is not
|
| 159 |
allowed **Rationale:** The type-safe nature of C++. **Effect on original
|
| 160 |
feature:** Deletion of semantically well-defined feature. Note: the
|
|
|
|
| 453 |
Semantic transformation. If the hidden name that needs to be accessed is
|
| 454 |
at global scope, the `::` C++operator can be used. If the hidden name is
|
| 455 |
at block scope, either the type or the struct tag has to be renamed.
|
| 456 |
Seldom.
|
| 457 |
|
| 458 |
+
[[class.bit]] **Change:** Bit-fields of type plain `int` are signed.
|
| 459 |
+
**Rationale:** Leaving the choice of signedness to implementations could
|
| 460 |
+
lead to inconsistent definitions of template specializations. For
|
| 461 |
+
consistency, the implementation freedom was eliminated for non-dependent
|
| 462 |
+
types, too. **Effect on original feature:** The choise is
|
| 463 |
+
implementation-defined in C, but not so in C++. Syntactic
|
| 464 |
+
transformation. Seldom.
|
| 465 |
+
|
| 466 |
[[class.nest]] **Change:** In C++, the name of a nested class is local
|
| 467 |
to its enclosing class. In C the name of the nested class belongs to the
|
| 468 |
same scope as the name of the outermost enclosing class.
|
| 469 |
|
| 470 |
Example:
|