[reserved.names.general] # 16 Library introduction [[library]](./#library) ## 16.4 Library-wide requirements [[requirements]](requirements#reserved.names.general) ### 16.4.5 Constraints on programs [[constraints]](constraints#reserved.names.general) #### 16.4.5.3 Reserved names [[reserved.names]](reserved.names#general) #### 16.4.5.3.1 General [reserved.names.general] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L3133) The C++ standard library reserves the following kinds of names: - [(1.1)](#1.1) macros - [(1.2)](#1.2) global names - [(1.3)](#1.3) names with external linkage [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L3141) If a program declares or defines a name in a context where it is reserved, other than as explicitly allowed by [[library]](library "16 Library introduction"), its behavior is undefined[.](#2.sentence-1)