20 Library introduction [library]

20.5 Library-wide requirements [requirements]

20.5.2 Using the library [using]

20.5.2.2 Headers [using.headers]

Сущности в стандартной библиотеке C ++ определены в заголовках, содержимое которых становится доступным для единицы перевода, когда она содержит соответствующие #include preprocessing directive.

Единица перевода может включать заголовки библиотеки в любом порядке (пункт [lex]). Каждый из них может быть включен более одного раза, при этом эффект не отличается от включения только один раз, за ​​исключением того, что эффект от включения одного<cassert> или другого <assert.h> зависит каждый раз от лексически актуального определения слова .NDEBUG173

Единица трансляции должна включать заголовок только вне любого объявления или определения и должна включать заголовок лексически перед первой ссылкой в ​​этой единице трансляции на любой из объектов, объявленных в этом заголовке. Диагностика не требуется.

Это то же самое, что и стандартная библиотека C.