Files
cppdraft_translate/cppdraft/extern/names.md
2025-10-25 03:02:53 +03:00

3.4 KiB

[extern.names]

16 Library introduction [library]

16.4 Library-wide requirements [requirements]

16.4.5 Constraints on programs [constraints]

16.4.5.3 Reserved names [reserved.names]

16.4.5.3.4 External linkage [extern.names]

1

#

Each name declared as an object with external linkagein a header is reserved to the implementation to designate that library object with external linkage,152 both in namespace std and in the global namespace.

2

#

Eachglobal function signature declared withexternal linkage in a header is reserved to the implementation to designate that function signature withexternal linkage.153

3

#

Each name from the C standard library declared with external linkageis reserved to the implementation for use as a name withextern "C" linkage, both in namespace std and in the global namespace.

4

#

Each function signature from the C standard library declared withexternal linkage is reserved to the implementation for use as a function signature with bothextern "C" andextern "C++" linkage,154 or as a name of namespace scope in the global namespace.

152)152)

The list of such reserved names includeserrno, declared or defined in .

153)153)

The list of such reserved function signatures with external linkage includessetjmp(jmp_buf), declared or defined in , andva_end(va_list), declared or defined in.

154)154)

The function signatures declared in,, and are always reserved, notwithstanding the restrictions imposed in subclause 4.5.1 of Amendment 1 to the C Standard for these headers.