123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- // -*- C++ -*-
- //===----------------------------------------------------------------------===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- #ifndef _LIBCPP_CSTDLIB
- #define _LIBCPP_CSTDLIB
- /*
- cstdlib synopsis
- Macros:
- EXIT_FAILURE
- EXIT_SUCCESS
- MB_CUR_MAX
- NULL
- RAND_MAX
- namespace std
- {
- Types:
- size_t
- div_t
- ldiv_t
- lldiv_t // C99
- double atof (const char* nptr);
- int atoi (const char* nptr);
- long atol (const char* nptr);
- long long atoll(const char* nptr); // C99
- double strtod (const char* restrict nptr, char** restrict endptr);
- float strtof (const char* restrict nptr, char** restrict endptr); // C99
- long double strtold (const char* restrict nptr, char** restrict endptr); // C99
- long strtol (const char* restrict nptr, char** restrict endptr, int base);
- long long strtoll (const char* restrict nptr, char** restrict endptr, int base); // C99
- unsigned long strtoul (const char* restrict nptr, char** restrict endptr, int base);
- unsigned long long strtoull(const char* restrict nptr, char** restrict endptr, int base); // C99
- int rand(void);
- void srand(unsigned int seed);
- void* calloc(size_t nmemb, size_t size);
- void free(void* ptr);
- void* malloc(size_t size);
- void* realloc(void* ptr, size_t size);
- void abort(void);
- int atexit(void (*func)(void));
- void exit(int status);
- void _Exit(int status);
- char* getenv(const char* name);
- int system(const char* string);
- void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
- int (*compar)(const void *, const void *));
- void qsort(void* base, size_t nmemb, size_t size,
- int (*compar)(const void *, const void *));
- int abs( int j);
- long abs( long j);
- long long abs(long long j); // C++0X
- long labs( long j);
- long long llabs(long long j); // C99
- div_t div( int numer, int denom);
- ldiv_t div( long numer, long denom);
- lldiv_t div(long long numer, long long denom); // C++0X
- ldiv_t ldiv( long numer, long denom);
- lldiv_t lldiv(long long numer, long long denom); // C99
- int mblen(const char* s, size_t n);
- int mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n);
- int wctomb(char* s, wchar_t wchar);
- size_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n);
- size_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n);
- int at_quick_exit(void (*func)(void)) // C++11
- void quick_exit(int status); // C++11
- void *aligned_alloc(size_t alignment, size_t size); // C11
- } // std
- */
- #include <__config>
- #include <stdlib.h>
- #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
- # pragma GCC system_header
- #endif
- _LIBCPP_BEGIN_NAMESPACE_STD
- using ::size_t _LIBCPP_USING_IF_EXISTS;
- using ::div_t _LIBCPP_USING_IF_EXISTS;
- using ::ldiv_t _LIBCPP_USING_IF_EXISTS;
- using ::lldiv_t _LIBCPP_USING_IF_EXISTS;
- using ::atof _LIBCPP_USING_IF_EXISTS;
- using ::atoi _LIBCPP_USING_IF_EXISTS;
- using ::atol _LIBCPP_USING_IF_EXISTS;
- using ::atoll _LIBCPP_USING_IF_EXISTS;
- using ::strtod _LIBCPP_USING_IF_EXISTS;
- using ::strtof _LIBCPP_USING_IF_EXISTS;
- using ::strtold _LIBCPP_USING_IF_EXISTS;
- using ::strtol _LIBCPP_USING_IF_EXISTS;
- using ::strtoll _LIBCPP_USING_IF_EXISTS;
- using ::strtoul _LIBCPP_USING_IF_EXISTS;
- using ::strtoull _LIBCPP_USING_IF_EXISTS;
- using ::rand _LIBCPP_USING_IF_EXISTS;
- using ::srand _LIBCPP_USING_IF_EXISTS;
- using ::calloc _LIBCPP_USING_IF_EXISTS;
- using ::free _LIBCPP_USING_IF_EXISTS;
- using ::malloc _LIBCPP_USING_IF_EXISTS;
- using ::realloc _LIBCPP_USING_IF_EXISTS;
- using ::abort _LIBCPP_USING_IF_EXISTS;
- using ::atexit _LIBCPP_USING_IF_EXISTS;
- using ::exit _LIBCPP_USING_IF_EXISTS;
- using ::_Exit _LIBCPP_USING_IF_EXISTS;
- #ifndef _LIBCPP_WINDOWS_STORE_APP
- using ::getenv _LIBCPP_USING_IF_EXISTS;
- using ::system _LIBCPP_USING_IF_EXISTS;
- #endif
- using ::bsearch _LIBCPP_USING_IF_EXISTS;
- using ::qsort _LIBCPP_USING_IF_EXISTS;
- using ::abs _LIBCPP_USING_IF_EXISTS;
- using ::labs _LIBCPP_USING_IF_EXISTS;
- using ::llabs _LIBCPP_USING_IF_EXISTS;
- using ::div _LIBCPP_USING_IF_EXISTS;
- using ::ldiv _LIBCPP_USING_IF_EXISTS;
- using ::lldiv _LIBCPP_USING_IF_EXISTS;
- using ::mblen _LIBCPP_USING_IF_EXISTS;
- using ::mbtowc _LIBCPP_USING_IF_EXISTS;
- using ::wctomb _LIBCPP_USING_IF_EXISTS;
- using ::mbstowcs _LIBCPP_USING_IF_EXISTS;
- using ::wcstombs _LIBCPP_USING_IF_EXISTS;
- #if !defined(_LIBCPP_CXX03_LANG) && defined(_LIBCPP_HAS_QUICK_EXIT)
- using ::at_quick_exit _LIBCPP_USING_IF_EXISTS;
- using ::quick_exit _LIBCPP_USING_IF_EXISTS;
- #endif
- #if _LIBCPP_STD_VER > 14 && defined(_LIBCPP_HAS_ALIGNED_ALLOC)
- using ::aligned_alloc _LIBCPP_USING_IF_EXISTS;
- #endif
- _LIBCPP_END_NAMESPACE_STD
- #endif // _LIBCPP_CSTDLIB
|