Стандартная библиотека C ++ резервирует следующие типы имен:
макросы
глобальные имена
имена с внешней связью
Если программа объявляет или определяет имя в контексте, в котором оно зарезервировано, кроме случаев, явно разрешенных этим пунктом, ее поведение не определено.
В пространстве имен stdследующие имена зарезервированы для предыдущей стандартизации:
Единица трансляции, которая включает заголовок стандартной библиотеки, не должна#define или не #undef объявляется в каком-либо заголовке стандартной библиотеки.
Единица перевода не должна #define или не должна быть #undef лексически идентична ключевым словам, идентификаторам, перечисленным в Таблице 4, или attribute-tokens описанным в [dcl.attr].
Каждое имя, объявленное как объект с внешней связью в заголовке, зарезервировано для реализации, чтобы обозначить этот объект библиотеки с внешней связью 177 как в пространстве имен, так std и в глобальном пространстве имен.
Каждая глобальная сигнатура функции, объявленная с внешней связью в заголовке, зарезервирована для реализации, чтобы обозначить эту сигнатуру функции с внешней связью.178
Каждое имя из стандартной библиотеки C, объявленное с внешней связью , зарезервировано для реализации для использования в качестве имени со связью как в пространстве имен, так и в глобальном пространстве имен.extern "C" std
Каждая сигнатура функции из стандартной библиотеки C, объявленной с внешней связью, зарезервирована для реализации для использования в качестве сигнатуры функции с обоими extern "C" и extern "C++" связью179 или как имя области пространства имен в глобальном пространстве имен.
Список таких зарезервированных сигнатур функций с внешней связью включает setjmp(jmp_buf), объявленные или определенные в , и , объявленные или определенные в .<csetjmp>va_end(va_list)<cstdarg>
Для каждого типа T из стандартной библиотеки C180 типы ::T и std::T зарезервированы для реализации и, если они определены, ::T должны быть идентичны std::T.
Эти типы clock_t, div_t, FILE, fpos_t, lconv, ldiv_t, mbstate_t, ptrdiff_t, sig_atomic_t, size_t, time_t, tm, va_list, wctrans_t, wctype_t, и wint_t.
Literal suffix identifiers которые не начинаются с подчеркивания, зарезервированы для будущей стандартизации.