48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
[using.linkage]
|
||
|
||
# 16 Library introduction [[library]](./#library)
|
||
|
||
## 16.4 Library-wide requirements [[requirements]](requirements#using.linkage)
|
||
|
||
### 16.4.3 Using the library [[using]](using#linkage)
|
||
|
||
#### 16.4.3.3 Linkage [using.linkage]
|
||
|
||
[1](#1)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L1724)
|
||
|
||
Entities in the C++ standard library have [external linkage](basic.link "6.7 Program and linkage [basic.link]")[.](#1.sentence-1)
|
||
|
||
Unless otherwise specified, objects and functions have the defaultextern "C++" linkage ([[dcl.link]](dcl.link "9.12 Linkage specifications"))[.](#1.sentence-2)
|
||
|
||
[2](#2)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L1730)
|
||
|
||
Whether a name from the C standard library declared with
|
||
external linkage hasextern "C" orextern "C++" linkage is implementation-defined[.](#2.sentence-1)
|
||
|
||
It is recommended that an
|
||
implementation useextern "C++" linkage for this purpose[.](#2.sentence-2)[150](#footnote-150 "The only reliable way to declare an object or function signature from the C standard library is by including the header that declares it, notwithstanding the latitude granted in ISO/IEC 9899:2024, 7.1.4.")
|
||
|
||
[3](#3)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L1751)
|
||
|
||
Objects and functions
|
||
defined in the library and required by a C++ program are included in
|
||
the program prior to program startup[.](#3.sentence-1)
|
||
|
||
[4](#4)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L1757)
|
||
|
||
See also[replacement functions](replacement.functions "16.4.5.6 Replacement functions [replacement.functions]"),[runtime changes](handler.functions "16.4.5.7 Handler functions [handler.functions]")[.](#4.sentence-1)
|
||
|
||
[150)](#footnote-150)[150)](#footnoteref-150)
|
||
|
||
The only reliable way to declare an object or
|
||
function signature from the C standard library is by including the header that
|
||
declares it, notwithstanding the latitude granted in ISO/IEC 9899:2024, 7.1.4[.](#footnote-150.sentence-1)
|