Annex C (informative) Compatibility [diff]

C.2 C++ and ISO C++ 2003 [diff.cpp03]

C.2.8 Clause [library]: library introduction [diff.cpp03.library]

[library] - Изменение: новые зарезервированные идентификаторы. Обоснование: требуется новыми функциями. Влияние на исходную функцию: действительный код C ++ 2003, который использует любые идентификаторы, добавленные в стандартную библиотеку C ++ этим международным стандартом, может не скомпилировать или дать другие результаты в этом международном стандарте. Полный список идентификаторов, используемых стандартной библиотекой C ++, можно найти в Указателе имен библиотек в этом международном стандарте. [thread]


[headers]
Изменение: новые заголовки.
Обоснование: новая функциональность.
Влияние на исходной функции: Следующие C ++ заголовки являются новыми: <array>, <atomic>, <chrono>, <codecvt>, <condition_­variable>, <forward_­list>, <future>, <initializer_­list>, <mutex>, <random>, <ratio>, <regex>, <scoped_­allocator>, <system_­error>, <thread>, <tuple>, <typeindex>, <type_­traits>,
<unordered_­map>, и <unordered_­set>. Кроме того, следующие заголовки совместимости С являются новыми: <ccomplex>, <cfenv>, <cinttypes>, <cstdalign>, <cstdbool>, <cstdint>, <ctgmath>, и <cuchar>. Допустимый код C ++ 2003, в котором #includeзаголовки с такими именами могут быть недопустимыми в этом международном стандарте.

[swappable.requirements]
Влияние на исходную функцию: функция swap перемещена в другой заголовок.
Обоснование: удалить зависимость от <algorithm> for swap.
Влияние на исходную функцию: действительный код C ++ 2003, который был скомпилирован с ожиданием<algorithm> наличия подкачки, возможно, придется вместо этого включить <utility>.

[namespace.posix]
Изменение: Новое зарезервированное пространство имен.
Обоснование: новая функциональность.
Влияние на исходную функцию: глобальное пространство имен posix теперь зарезервировано для стандартизации. Допустимый код C ++ 2003, использующий пространство имен верхнего уровня, posix может быть недопустимым в этом международном стандарте.

[res.on.macro.definitions]
Изменение: Дополнительные ограничения на имена макросов.
Обоснование: Избегайте сложных для диагностики или непереносимых конструкций.
Влияние на исходную функцию: Имена идентификаторов атрибутов не могут использоваться в качестве имен макросов. Действительный C ++ 2003 код , который определяет override, final, carries_­dependencyили в noreturn виде макросов является недействительным в настоящем стандарте.