tmp/tmp3zrd2t7c/{from.md → to.md}
RENAMED
|
@@ -24,18 +24,18 @@ import <vector>; // imports the <vector> header unit
|
|
| 24 |
std::vector<int> vi; // OK
|
| 25 |
```
|
| 26 |
|
| 27 |
— *end example*]
|
| 28 |
|
| 29 |
-
Except as noted in [[library]] through [[
|
| 30 |
contents of each header `cname` is the same as that of the corresponding
|
| 31 |
header `name.h` as specified in the C standard library [[intro.refs]].
|
| 32 |
In the C++ standard library, however, the declarations (except for names
|
| 33 |
which are defined as macros in C) are within namespace scope
|
| 34 |
[[basic.scope.namespace]] of the namespace `std`. It is unspecified
|
| 35 |
whether these names (including any overloads added in [[support]]
|
| 36 |
-
through [[
|
| 37 |
namespace scope and are then injected into namespace `std` by explicit
|
| 38 |
*using-declaration*s [[namespace.udecl]].
|
| 39 |
|
| 40 |
Names which are defined as macros in C shall be defined as macros in the
|
| 41 |
C++ standard library, even if C grants license for implementation as
|
|
@@ -49,15 +49,15 @@ Names that are defined as functions in C shall be defined as functions
|
|
| 49 |
in the C++ standard library.[^16]
|
| 50 |
|
| 51 |
Identifiers that are keywords or operators in C++ shall not be defined
|
| 52 |
as macros in C++ standard library headers.[^17]
|
| 53 |
|
| 54 |
-
[[support.c.headers]]
|
| 55 |
-
|
| 56 |
|
| 57 |
-
|
| 58 |
-
associated types and macros, which “promote safer, more secure
|
| 59 |
programming” than many of the traditional C library functions. The names
|
| 60 |
of the functions have a suffix of `_s`; most of them provide the same
|
| 61 |
service as the C library function with the unsuffixed name, but
|
| 62 |
generally take an additional argument whose value is the size of the
|
| 63 |
result array. If any C++ header is included, it is
|
|
|
|
| 24 |
std::vector<int> vi; // OK
|
| 25 |
```
|
| 26 |
|
| 27 |
— *end example*]
|
| 28 |
|
| 29 |
+
Except as noted in [[library]] through [[exec]] and [[depr]], the
|
| 30 |
contents of each header `cname` is the same as that of the corresponding
|
| 31 |
header `name.h` as specified in the C standard library [[intro.refs]].
|
| 32 |
In the C++ standard library, however, the declarations (except for names
|
| 33 |
which are defined as macros in C) are within namespace scope
|
| 34 |
[[basic.scope.namespace]] of the namespace `std`. It is unspecified
|
| 35 |
whether these names (including any overloads added in [[support]]
|
| 36 |
+
through [[exec]] and [[depr]]) are first declared within the global
|
| 37 |
namespace scope and are then injected into namespace `std` by explicit
|
| 38 |
*using-declaration*s [[namespace.udecl]].
|
| 39 |
|
| 40 |
Names which are defined as macros in C shall be defined as macros in the
|
| 41 |
C++ standard library, even if C grants license for implementation as
|
|
|
|
| 49 |
in the C++ standard library.[^16]
|
| 50 |
|
| 51 |
Identifiers that are keywords or operators in C++ shall not be defined
|
| 52 |
as macros in C++ standard library headers.[^17]
|
| 53 |
|
| 54 |
+
Subclause [[support.c.headers]] describes the effects of using the
|
| 55 |
+
`name.h` (C header) form in a C++ program.[^18]
|
| 56 |
|
| 57 |
+
ISO/IEC 9899:2018 (C), Annex K describes a large number of functions,
|
| 58 |
+
with associated types and macros, which “promote safer, more secure
|
| 59 |
programming” than many of the traditional C library functions. The names
|
| 60 |
of the functions have a suffix of `_s`; most of them provide the same
|
| 61 |
service as the C library function with the unsuffixed name, but
|
| 62 |
generally take an additional argument whose value is the size of the
|
| 63 |
result array. If any C++ header is included, it is
|