Each name declared as an object with external linkage
in a header is reserved to the implementation to designate that library
object with external linkage,¹⁴¹
both in namespace std and in the global namespace.
Each
global function signature declared with
external linkage in a header is reserved to the
implementation to designate that function signature with
external linkage.¹⁴²
Each name from the C standard library declared with external linkage
is reserved to the implementation for use as a name with
extern"C"
linkage,
both in namespace std and in the global namespace.
Each function signature from the C standard library declared with
external linkage
is reserved to the implementation for use as
a function signature with both
extern"C"
and
extern"C++"
linkage,¹⁴³
or as a name of namespace scope in the global namespace.
The list of such reserved function
signatures with external linkage includes
setjmp(jmp_buf),
declared or defined in <csetjmp>,
and
va_end(va_list),
declared or defined in
<cstdarg>.
The function signatures declared in
<cuchar>,
<cwchar>,
and
<cwctype>
are always reserved, notwithstanding the restrictions imposed in subclause
4.5.1 of Amendment 1 to the C Standard for these headers.