From Jason Turner

[cstdlib.syn]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpot7_z202/{from.md → to.md} +33 -22
tmp/tmpot7_z202/{from.md → to.md} RENAMED
@@ -1,18 +1,18 @@
1
  ### Header `<cstdlib>` synopsis <a id="cstdlib.syn">[[cstdlib.syn]]</a>
2
 
3
  ``` cpp
4
  namespace std {
5
  using size_t = see below; // freestanding
6
- using div_t = see below;
7
- using ldiv_t = see below;
8
- using lldiv_t = see below;
9
  }
10
 
11
  #define NULL see below // freestanding
12
- #define EXIT_FAILURE see below
13
- #define EXIT_SUCCESS see below
14
  #define RAND_MAX see below
15
  #define MB_CUR_MAX see below
16
 
17
  namespace std {
18
  // Exposition-only function type aliases
@@ -36,18 +36,24 @@ namespace std {
36
 
37
  // [c.malloc], C library memory allocation
38
  void* aligned_alloc(size_t alignment, size_t size);
39
  void* calloc(size_t nmemb, size_t size);
40
  void free(void* ptr);
 
 
41
  void* malloc(size_t size);
42
  void* realloc(void* ptr, size_t size);
 
43
 
44
  double atof(const char* nptr);
45
  int atoi(const char* nptr);
46
  long int atol(const char* nptr);
47
  long long int atoll(const char* nptr);
48
  double strtod(const char* nptr, char** endptr);
 
 
 
49
  float strtof(const char* nptr, char** endptr);
50
  long double strtold(const char* nptr, char** endptr);
51
  long int strtol(const char* nptr, char** endptr, int base);
52
  long long int strtoll(const char* nptr, char** endptr, int base);
53
  unsigned long int strtoul(const char* nptr, char** endptr, int base);
@@ -59,45 +65,50 @@ namespace std {
59
  int wctomb(char* s, wchar_t wchar);
60
  size_t mbstowcs(wchar_t* pwcs, const char* s, size_t n);
61
  size_t wcstombs(char* s, const wchar_t* pwcs, size_t n);
62
 
63
  // [alg.c.library], C standard library algorithms
64
- void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
65
  c-compare-pred* compar);
66
- void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
67
  compare-pred* compar);
68
- void qsort(void* base, size_t nmemb, size_t size, c-compare-pred* compar);
69
- void qsort(void* base, size_t nmemb, size_t size, compare-pred* compar);
 
 
 
 
70
 
71
  // [c.math.rand], low-quality random number generation
72
  int rand();
73
  void srand(unsigned int seed);
74
 
75
  // [c.math.abs], absolute values
76
- constexpr int abs(int j);
77
- constexpr long int abs(long int j);
78
- constexpr long long int abs(long long int j);
79
- constexpr floating-point-type abs(floating-point-type j);
80
 
81
- constexpr long int labs(long int j);
82
- constexpr long long int llabs(long long int j);
83
 
84
- constexpr div_t div(int numer, int denom);
85
- constexpr ldiv_t div(long int numer, long int denom); // see [library.c]
86
- constexpr lldiv_t div(long long int numer, long long int denom); // see [library.c]
87
- constexpr ldiv_t ldiv(long int numer, long int denom);
88
- constexpr lldiv_t lldiv(long long int numer, long long int denom);
89
  }
90
  ```
91
 
92
  The contents and meaning of the header `<cstdlib>` are the same as the C
93
  standard library header `<stdlib.h>`, except that it does not declare
94
- the type `wchar_t`, and except as noted in [[support.types.nullptr]],
 
95
  [[support.types.layout]], [[support.start.term]], [[c.malloc]],
96
  [[c.mb.wcs]], [[alg.c.library]], [[c.math.rand]], and [[c.math.abs]].
97
 
98
  [*Note 1*: Several functions have additional overloads in this
99
  document, but they have the same behavior as in the C standard library
100
  [[library.c]]. — *end note*]
101
 
102
- See also: ISO C 7.22
103
 
 
1
  ### Header `<cstdlib>` synopsis <a id="cstdlib.syn">[[cstdlib.syn]]</a>
2
 
3
  ``` cpp
4
  namespace std {
5
  using size_t = see below; // freestanding
6
+ using div_t = see below; // freestanding
7
+ using ldiv_t = see below; // freestanding
8
+ using lldiv_t = see below; // freestanding
9
  }
10
 
11
  #define NULL see below // freestanding
12
+ #define EXIT_FAILURE see below // freestanding
13
+ #define EXIT_SUCCESS see below // freestanding
14
  #define RAND_MAX see below
15
  #define MB_CUR_MAX see below
16
 
17
  namespace std {
18
  // Exposition-only function type aliases
 
36
 
37
  // [c.malloc], C library memory allocation
38
  void* aligned_alloc(size_t alignment, size_t size);
39
  void* calloc(size_t nmemb, size_t size);
40
  void free(void* ptr);
41
+ void free_sized(void* ptr, size_t size);
42
+ void free_aligned_sized(void* ptr, size_t alignment, size_t size);
43
  void* malloc(size_t size);
44
  void* realloc(void* ptr, size_t size);
45
+ size_t memalignment(const void* p); // freestanding
46
 
47
  double atof(const char* nptr);
48
  int atoi(const char* nptr);
49
  long int atol(const char* nptr);
50
  long long int atoll(const char* nptr);
51
  double strtod(const char* nptr, char** endptr);
52
+ int strfromd(char* s, size_t n, const char* format, double fp);
53
+ int strfromf(char* s, size_t n, const char* format, float fp);
54
+ int strfroml(char* s, size_t n, const char* format, long double fp);
55
  float strtof(const char* nptr, char** endptr);
56
  long double strtold(const char* nptr, char** endptr);
57
  long int strtol(const char* nptr, char** endptr, int base);
58
  long long int strtoll(const char* nptr, char** endptr, int base);
59
  unsigned long int strtoul(const char* nptr, char** endptr, int base);
 
65
  int wctomb(char* s, wchar_t wchar);
66
  size_t mbstowcs(wchar_t* pwcs, const char* s, size_t n);
67
  size_t wcstombs(char* s, const wchar_t* pwcs, size_t n);
68
 
69
  // [alg.c.library], C standard library algorithms
70
+ void* bsearch(const void* key, void* base, size_t nmemb, size_t size, // freestanding
71
  c-compare-pred* compar);
72
+ void* bsearch(const void* key, void* base, size_t nmemb, size_t size, // freestanding
73
  compare-pred* compar);
74
+ const void* bsearch(const void* key, const void* base, size_t nmemb, // freestanding
75
+ size_t size, c-compare-pred* compar);
76
+ const void* bsearch(const void* key, const void* base, size_t nmemb, // freestanding
77
+ size_t size, compare-pred* compar);
78
+ void qsort(void* base, size_t nmemb, size_t size, c-compare-pred* compar); // freestanding
79
+ void qsort(void* base, size_t nmemb, size_t size, compare-pred* compar); // freestanding
80
 
81
  // [c.math.rand], low-quality random number generation
82
  int rand();
83
  void srand(unsigned int seed);
84
 
85
  // [c.math.abs], absolute values
86
+ constexpr int abs(int j); // freestanding
87
+ constexpr long int abs(long int j); // freestanding
88
+ constexpr long long int abs(long long int j); // freestanding
89
+ constexpr floating-point-type abs(floating-point-type j); // freestanding-deleted
90
 
91
+ constexpr long int labs(long int j); // freestanding
92
+ constexpr long long int llabs(long long int j); // freestanding
93
 
94
+ constexpr div_t div(int numer, int denom); // freestanding
95
+ constexpr ldiv_t div(long int numer, long int denom); // freestanding; see [library.c]
96
+ constexpr lldiv_t div(long long int numer, long long int denom); // freestanding; see [library.c]
97
+ constexpr ldiv_t ldiv(long int numer, long int denom); // freestanding
98
+ constexpr lldiv_t lldiv(long long int numer, long long int denom); // freestanding
99
  }
100
  ```
101
 
102
  The contents and meaning of the header `<cstdlib>` are the same as the C
103
  standard library header `<stdlib.h>`, except that it does not declare
104
+ the types `wchar_t` or `once_flag`, and does not declare the function
105
+ `call_once`, and except as noted in [[support.types.nullptr]],
106
  [[support.types.layout]], [[support.start.term]], [[c.malloc]],
107
  [[c.mb.wcs]], [[alg.c.library]], [[c.math.rand]], and [[c.math.abs]].
108
 
109
  [*Note 1*: Several functions have additional overloads in this
110
  document, but they have the same behavior as in the C standard library
111
  [[library.c]]. — *end note*]
112
 
113
+ See also: ISO C 7.24
114