Init
This commit is contained in:
65
cppdraft/diff/mods/to/behavior.md
Normal file
65
cppdraft/diff/mods/to/behavior.md
Normal file
@@ -0,0 +1,65 @@
|
||||
[diff.mods.to.behavior]
|
||||
|
||||
# Annex C (informative) Compatibility [[diff]](./#diff)
|
||||
|
||||
## C.8 C standard library [[diff.library]](diff.library#diff.mods.to.behavior)
|
||||
|
||||
### C.8.5 Modifications to behavior [diff.mods.to.behavior]
|
||||
|
||||
#### [C.8.5.1](#general) General [[diff.mods.to.behavior.general]](diff.mods.to.behavior.general)
|
||||
|
||||
[1](#general-1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3806)
|
||||
|
||||
Header [<cstdlib>](cstdlib.syn#header:%3ccstdlib%3e "17.2.2 Header <cstdlib> synopsis [cstdlib.syn]"):
|
||||
The following functions have different behavior:
|
||||
|
||||
- [(1.1)](#general-1.1)
|
||||
|
||||
atexit
|
||||
|
||||
- [(1.2)](#general-1.2)
|
||||
|
||||
exit
|
||||
|
||||
- [(1.3)](#general-1.3)
|
||||
|
||||
abort
|
||||
|
||||
Subclause [[support.start.term]](support.start.term "17.5 Startup and termination") describes the changes[.](#general-1.sentence-2)
|
||||
|
||||
[2](#general-2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3817)
|
||||
|
||||
Header [<csetjmp>](csetjmp.syn#header:%3ccsetjmp%3e "17.14.3 Header <csetjmp> synopsis [csetjmp.syn]"):
|
||||
The following functions have different behavior:
|
||||
|
||||
- [(2.1)](#general-2.1)
|
||||
|
||||
longjmp
|
||||
|
||||
Subclause [[csetjmp.syn]](csetjmp.syn "17.14.3 Header <csetjmp> synopsis") describes the changes[.](#general-2.sentence-2)
|
||||
|
||||
#### [C.8.5.2](#diff.offsetof) Macro offsetof(*type*, *member-designator*) [[diff.offsetof]](diff.offsetof)
|
||||
|
||||
[1](#diff.offsetof-1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3829)
|
||||
|
||||
The macro offsetof, defined in[<cstddef>](cstddef.syn#header:%3ccstddef%3e "17.2.1 Header <cstddef> synopsis [cstddef.syn]"),
|
||||
accepts a restricted set of *type* arguments in C++[.](#diff.offsetof-1.sentence-1)
|
||||
|
||||
Subclause [[support.types.layout]](support.types.layout "17.2.4 Sizes, alignments, and offsets") describes the change[.](#diff.offsetof-1.sentence-2)
|
||||
|
||||
#### [C.8.5.3](#diff.malloc) Memory allocation functions [[diff.malloc]](diff.malloc)
|
||||
|
||||
[1](#diff.malloc-1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3837)
|
||||
|
||||
The functionsaligned_alloc,calloc,malloc,
|
||||
andrealloc are restricted in C++[.](#diff.malloc-1.sentence-1)
|
||||
|
||||
Subclause [[c.malloc]](c.malloc "20.2.12 C library memory allocation") describes the changes[.](#diff.malloc-1.sentence-2)
|
||||
43
cppdraft/diff/mods/to/behavior/general.md
Normal file
43
cppdraft/diff/mods/to/behavior/general.md
Normal file
@@ -0,0 +1,43 @@
|
||||
[diff.mods.to.behavior.general]
|
||||
|
||||
# Annex C (informative) Compatibility [[diff]](./#diff)
|
||||
|
||||
## C.8 C standard library [[diff.library]](diff.library#diff.mods.to.behavior.general)
|
||||
|
||||
### C.8.5 Modifications to behavior [[diff.mods.to.behavior]](diff.mods.to.behavior#general)
|
||||
|
||||
#### C.8.5.1 General [diff.mods.to.behavior.general]
|
||||
|
||||
[1](#1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3806)
|
||||
|
||||
Header [<cstdlib>](cstdlib.syn#header:%3ccstdlib%3e "17.2.2 Header <cstdlib> synopsis [cstdlib.syn]"):
|
||||
The following functions have different behavior:
|
||||
|
||||
- [(1.1)](#1.1)
|
||||
|
||||
atexit
|
||||
|
||||
- [(1.2)](#1.2)
|
||||
|
||||
exit
|
||||
|
||||
- [(1.3)](#1.3)
|
||||
|
||||
abort
|
||||
|
||||
Subclause [[support.start.term]](support.start.term "17.5 Startup and termination") describes the changes[.](#1.sentence-2)
|
||||
|
||||
[2](#2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3817)
|
||||
|
||||
Header [<csetjmp>](csetjmp.syn#header:%3ccsetjmp%3e "17.14.3 Header <csetjmp> synopsis [csetjmp.syn]"):
|
||||
The following functions have different behavior:
|
||||
|
||||
- [(2.1)](#2.1)
|
||||
|
||||
longjmp
|
||||
|
||||
Subclause [[csetjmp.syn]](csetjmp.syn "17.14.3 Header <csetjmp> synopsis") describes the changes[.](#2.sentence-2)
|
||||
73
cppdraft/diff/mods/to/declarations.md
Normal file
73
cppdraft/diff/mods/to/declarations.md
Normal file
@@ -0,0 +1,73 @@
|
||||
[diff.mods.to.declarations]
|
||||
|
||||
# Annex C (informative) Compatibility [[diff]](./#diff)
|
||||
|
||||
## C.8 C standard library [[diff.library]](diff.library#diff.mods.to.declarations)
|
||||
|
||||
### C.8.4 Modifications to declarations [diff.mods.to.declarations]
|
||||
|
||||
[1](#1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3769)
|
||||
|
||||
Header [<cstring>](cstring.syn#header:%3ccstring%3e "27.5.1 Header <cstring> synopsis [cstring.syn]"):
|
||||
The following functions have different declarations:
|
||||
|
||||
- [(1.1)](#1.1)
|
||||
|
||||
strchr
|
||||
|
||||
- [(1.2)](#1.2)
|
||||
|
||||
strpbrk
|
||||
|
||||
- [(1.3)](#1.3)
|
||||
|
||||
strrchr
|
||||
|
||||
- [(1.4)](#1.4)
|
||||
|
||||
strstr
|
||||
|
||||
- [(1.5)](#1.5)
|
||||
|
||||
memchr
|
||||
|
||||
Subclause [[cstring.syn]](cstring.syn "27.5.1 Header <cstring> synopsis") describes the changes[.](#1.sentence-2)
|
||||
|
||||
[2](#2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3782)
|
||||
|
||||
Header [<cwchar>](cwchar.syn#header:%3ccwchar%3e "28.7.3 Header <cwchar> synopsis [cwchar.syn]"):
|
||||
The following functions have different declarations:
|
||||
|
||||
- [(2.1)](#2.1)
|
||||
|
||||
wcschr
|
||||
|
||||
- [(2.2)](#2.2)
|
||||
|
||||
wcspbrk
|
||||
|
||||
- [(2.3)](#2.3)
|
||||
|
||||
wcsrchr
|
||||
|
||||
- [(2.4)](#2.4)
|
||||
|
||||
wcsstr
|
||||
|
||||
- [(2.5)](#2.5)
|
||||
|
||||
wmemchr
|
||||
|
||||
Subclause [[cwchar.syn]](cwchar.syn "28.7.3 Header <cwchar> synopsis") describes the changes[.](#2.sentence-2)
|
||||
|
||||
[3](#3)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3795)
|
||||
|
||||
Header [<cstddef>](cstddef.syn#header:%3ccstddef%3e "17.2.1 Header <cstddef> synopsis [cstddef.syn]") declares the names nullptr_t, byte, and to_integer,
|
||||
and the operators and operator templates in [[support.types.byteops]](support.types.byteops "17.2.5 byte type operations"),
|
||||
in addition to the names declared in[<stddef.h>](support.c.headers.general#header:%3cstddef.h%3e "17.15.1 General [support.c.headers.general]") in the C standard library[.](#3.sentence-1)
|
||||
56
cppdraft/diff/mods/to/definitions.md
Normal file
56
cppdraft/diff/mods/to/definitions.md
Normal file
@@ -0,0 +1,56 @@
|
||||
[diff.mods.to.definitions]
|
||||
|
||||
# Annex C (informative) Compatibility [[diff]](./#diff)
|
||||
|
||||
## C.8 C standard library [[diff.library]](diff.library#diff.mods.to.definitions)
|
||||
|
||||
### C.8.3 Modifications to definitions [diff.mods.to.definitions]
|
||||
|
||||
#### [C.8.3.1](#diff.char16) Types char8_t, char16_t, and char32_t [[diff.char16]](diff.char16)
|
||||
|
||||
[1](#diff.char16-1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3711)
|
||||
|
||||
The types char8_t, char16_t, and char32_t are distinct types rather than typedefs to existing integral types[.](#diff.char16-1.sentence-1)
|
||||
|
||||
The tokens char8_t, char16_t, and char32_t are keywords in C++ ([[lex.key]](lex.key "5.12 Keywords"))[.](#diff.char16-1.sentence-2)
|
||||
|
||||
They do not appear as macro or type names defined in[<cuchar>](cuchar.syn#header:%3ccuchar%3e "28.7.4 Header <cuchar> synopsis [cuchar.syn]")[.](#diff.char16-1.sentence-3)
|
||||
|
||||
#### [C.8.3.2](#diff.wchar.t) Type wchar_t [[diff.wchar.t]](diff.wchar.t)
|
||||
|
||||
[1](#diff.wchar.t-1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3721)
|
||||
|
||||
The type wchar_t is a distinct type rather than a typedef to an
|
||||
existing integral type[.](#diff.wchar.t-1.sentence-1)
|
||||
|
||||
The token wchar_t is a keyword in C++ ([[lex.key]](lex.key "5.12 Keywords"))[.](#diff.wchar.t-1.sentence-2)
|
||||
|
||||
It does not appear as a macro or type name defined in any of[<cstddef>](cstddef.syn#header:%3ccstddef%3e "17.2.1 Header <cstddef> synopsis [cstddef.syn]"),[<cstdlib>](cstdlib.syn#header:%3ccstdlib%3e "17.2.2 Header <cstdlib> synopsis [cstdlib.syn]"),
|
||||
or [<cwchar>](cwchar.syn#header:%3ccwchar%3e "28.7.3 Header <cwchar> synopsis [cwchar.syn]")[.](#diff.wchar.t-1.sentence-3)
|
||||
|
||||
#### [C.8.3.3](#diff.header.iso646.h) Header <iso646.h> [[diff.header.iso646.h]](diff.header.iso646.h)
|
||||
|
||||
[1](#diff.header.iso646.h-1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3733)
|
||||
|
||||
The tokensand,and_eq,bitand,bitor,compl,not,not_eq,or,or_eq,xor,
|
||||
andxor_eq are keywords in C++ ([[lex.key]](lex.key "5.12 Keywords")),
|
||||
and are not introduced as macros
|
||||
by [<iso646.h>](iso646.h.syn#header:%3ciso646.h%3e "17.15.3 Header <iso646.h> synopsis [iso646.h.syn]")[.](#diff.header.iso646.h-1.sentence-1)
|
||||
|
||||
#### [C.8.3.4](#diff.null) Macro NULL [[diff.null]](diff.null)
|
||||
|
||||
[1](#diff.null-1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3753)
|
||||
|
||||
The macroNULL,
|
||||
defined in any of[<clocale>](clocale.syn#header:%3cclocale%3e "28.3.5.1 Header <clocale> synopsis [clocale.syn]"),[<cstddef>](cstddef.syn#header:%3ccstddef%3e "17.2.1 Header <cstddef> synopsis [cstddef.syn]"),[<cstdio>](cstdio.syn#header:%3ccstdio%3e "31.13.1 Header <cstdio> synopsis [cstdio.syn]"),[<cstdlib>](cstdlib.syn#header:%3ccstdlib%3e "17.2.2 Header <cstdlib> synopsis [cstdlib.syn]"),[<cstring>](cstring.syn#header:%3ccstring%3e "27.5.1 Header <cstring> synopsis [cstring.syn]"),[<ctime>](ctime.syn#header:%3cctime%3e "30.15 Header <ctime> synopsis [ctime.syn]"),
|
||||
or [<cwchar>](cwchar.syn#header:%3ccwchar%3e "28.7.3 Header <cwchar> synopsis [cwchar.syn]"),
|
||||
is an implementation-defined null pointer constant in
|
||||
C++ ([[support.types]](support.types "17.2 Common definitions"))[.](#diff.null-1.sentence-1)
|
||||
30
cppdraft/diff/mods/to/headers.md
Normal file
30
cppdraft/diff/mods/to/headers.md
Normal file
@@ -0,0 +1,30 @@
|
||||
[diff.mods.to.headers]
|
||||
|
||||
# Annex C (informative) Compatibility [[diff]](./#diff)
|
||||
|
||||
## C.8 C standard library [[diff.library]](diff.library#diff.mods.to.headers)
|
||||
|
||||
### C.8.2 Modifications to headers [diff.mods.to.headers]
|
||||
|
||||
[1](#1)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3691)
|
||||
|
||||
For compatibility with the C standard library,
|
||||
the C++ standard library provides the C headers enumerated
|
||||
in [[support.c.headers]](support.c.headers "17.15 C headers")[.](#1.sentence-1)
|
||||
|
||||
[2](#2)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3696)
|
||||
|
||||
There are no C++ headers for the C standard library's headers<stdnoreturn.h> and <threads.h>,
|
||||
nor are these headers from the C standard library headers themselves part of C++[.](#2.sentence-1)
|
||||
|
||||
[3](#3)
|
||||
|
||||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3701)
|
||||
|
||||
The C headers [<complex.h>](complex.h.syn#header:%3ccomplex.h%3e "17.15.2 Header <complex.h> synopsis [complex.h.syn]") and[<tgmath.h>](tgmath.h.syn#header:%3ctgmath.h%3e "17.15.6 Header <tgmath.h> synopsis [tgmath.h.syn]") do not contain any of the content from
|
||||
the C standard library and instead merely include other headers from the C++
|
||||
standard library[.](#3.sentence-1)
|
||||
Reference in New Issue
Block a user