[diff.cpp23.library] # Annex C (informative) Compatibility [[diff]](./#diff) ## C.1 C++ and ISO C++ 2023 [[diff.cpp23]](diff.cpp23#library) ### C.1.6 [[library]](library "16 Library introduction"): library introduction [diff.cpp23.library] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L243) **Affected subclause:** [[headers]](headers) **Change:** New headers[.](#1.sentence-1) **Rationale:** New functionality[.](#1.sentence-2) **Effect on original feature:** The following C++ headers are new:[](contracts.syn#header:%3ccontracts%3e "17.10.1 Header synopsis [contracts.syn]"),[](debugging.syn#header:%3cdebugging%3e "19.7.2 Header synopsis [debugging.syn]"),[](hazard.pointer.syn#header:%3chazard_pointer%3e "32.11.3.2 Header synopsis [hazard.pointer.syn]"),[](hive.syn#header:%3chive%3e "23.3.8 Header synopsis [hive.syn]"),[](inplace.vector.syn#header:%3cinplace_vector%3e "23.3.15 Header synopsis [inplace.vector.syn]"),[](linalg.syn#header:%3clinalg%3e "29.9.2 Header synopsis [linalg.syn]"),[](meta.syn#header:%3cmeta%3e "21.4.1 Header synopsis [meta.syn]"),[](rcu.syn#header:%3crcu%3e "32.11.2.2 Header synopsis [rcu.syn]"),[](simd.syn#header:%3csimd%3e "29.10.3 Header synopsis [simd.syn]"),[](stdbit.h.syn#header:%3cstdbit.h%3e "22.12 Header synopsis [stdbit.h.syn]"),[](stdckdint.h.syn#header:%3cstdckdint.h%3e "29.11.1 Header synopsis [stdckdint.h.syn]"), and[](text.encoding.syn#header:%3ctext_encoding%3e "28.4.1 Header synopsis [text.encoding.syn]")[.](#1.sentence-3) Valid C++ 2023 code that #includes headers with these names may be invalid in this revision of C++[.](#1.sentence-4) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L265) **Affected subclause:** [[res.on.macro.definitions]](res.on.macro.definitions) **Change:** Additional restrictions on macro names[.](#2.sentence-1) **Rationale:** Avoid hard to diagnose or non-portable constructs[.](#2.sentence-2) **Effect on original feature:** Names of special identifiers may not be used as macro names[.](#2.sentence-3) Valid C++ 2023 code that defines replaceable_if_eligible ortrivially_relocatable_if_eligible as macros is invalid in this revision of C++[.](#2.sentence-4)