17 Language support library [support] (original) (raw)

17.2 Common definitions [support.types]

17.2.2 Header synopsis [cstdlib.syn]

namespace std { using size_t = see below; // freestanding using div_t = see below; // freestanding using ldiv_t = see below; // freestanding using lldiv_t = see below; // freestanding } #define NULL see below // freestanding #define EXIT_FAILURE see below // freestanding #define EXIT_SUCCESS see below // freestanding #define RAND_MAX see below #define MB_CUR_MAX see below namespace std { // Exposition-only function type aliases extern "C" using c-atexit-handler = void(); // exposition only extern "C++" using atexit-handler = void(); // exposition only extern "C" using c-compare-pred = int(const void*, const void*); // exposition only extern "C++" using compare-pred = int(const void*, const void*); // exposition only // [support.start.term], start and termination [[noreturn]] void abort() noexcept; // freestanding int atexit(c-atexit-handler* func) noexcept; // freestanding int atexit(atexit-handler* func) noexcept; // freestanding int at_quick_exit(c-atexit-handler* func) noexcept; // freestanding int at_quick_exit(atexit-handler* func) noexcept; // freestanding [[noreturn]] void exit(int status); // freestanding [[noreturn]] void _Exit(int status) noexcept; // freestanding [[noreturn]] void quick_exit(int status) noexcept; // freestanding char* getenv(const char* name);int system(const char* string);// [c.malloc], C library memory allocation void* aligned_alloc(size_t alignment, size_t size);void* calloc(size_t nmemb, size_t size);void free(void* ptr);void* malloc(size_t size);void* realloc(void* ptr, size_t size);double atof(const char* nptr);int atoi(const char* nptr);long int atol(const char* nptr);long long int atoll(const char* nptr);double strtod(const char* nptr, char** endptr);float strtof(const char* nptr, char** endptr);long double strtold(const char* nptr, char** endptr);long int strtol(const char* nptr, char** endptr, int base);long long int strtoll(const char* nptr, char** endptr, int base);unsigned long int strtoul(const char* nptr, char** endptr, int base);unsigned long long int strtoull(const char* nptr, char** endptr, int base);// [c.mb.wcs], multibyte / wide string and character conversion functions int mblen(const char* s, size_t n);int mbtowc(wchar_t* pwc, const char* s, size_t n);int wctomb(char* s, wchar_t wchar); size_t mbstowcs(wchar_t* pwcs, const char* s, size_t n); size_t wcstombs(char* s, const wchar_t* pwcs, size_t n);// [alg.c.library], C standard library algorithms void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, // freestanding c-compare-pred* compar);void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, // freestanding compare-pred* compar);void qsort(void* base, size_t nmemb, size_t size, c-compare-pred* compar); // freestanding void qsort(void* base, size_t nmemb, size_t size, compare-pred* compar); // freestanding // [c.math.rand], low-quality random number generation int rand();void srand(unsigned int seed);// [c.math.abs], absolute values constexpr int abs(int j); // freestanding constexpr long int abs(long int j); // freestanding constexpr long long int abs(long long int j); // freestanding constexpr floating-point-type abs(floating-point-type j); // freestanding-deleted constexpr long int labs(long int j); // freestanding constexpr long long int llabs(long long int j); // freestanding constexpr div_t div(int numer, int denom); // freestanding constexpr ldiv_t div(long int numer, long int denom); // freestanding; see [library.c] constexpr lldiv_t div(long long int numer, long long int denom); // freestanding; see [library.c] constexpr ldiv_t ldiv(long int numer, long int denom); // freestanding constexpr lldiv_t lldiv(long long int numer, long long int denom); // freestanding }

[Note 1:

Several functions have additional overloads in this document, but they have the same behavior as in the C standard library.

— _end note_]

See also: ISO/IEC 9899:2018, 7.22