OLD | NEW |
(Empty) | |
| 1 // -*- C++ -*- |
| 2 //===--------------------------- cstdlib ----------------------------------===// |
| 3 // |
| 4 // The LLVM Compiler Infrastructure |
| 5 // |
| 6 // This file is dual licensed under the MIT and the University of Illinois Open |
| 7 // Source Licenses. See LICENSE.TXT for details. |
| 8 // |
| 9 //===----------------------------------------------------------------------===// |
| 10 |
| 11 #ifndef _LIBCPP_CSTDLIB |
| 12 #define _LIBCPP_CSTDLIB |
| 13 |
| 14 /* |
| 15 cstdlib synopsis |
| 16 |
| 17 Macros: |
| 18 |
| 19 EXIT_FAILURE |
| 20 EXIT_SUCCESS |
| 21 MB_CUR_MAX |
| 22 NULL |
| 23 RAND_MAX |
| 24 |
| 25 namespace std |
| 26 { |
| 27 |
| 28 Types: |
| 29 |
| 30 size_t |
| 31 div_t |
| 32 ldiv_t |
| 33 lldiv_t // C99 |
| 34 |
| 35 double atof (const char* nptr); |
| 36 int atoi (const char* nptr); |
| 37 long atol (const char* nptr); |
| 38 long long atoll(const char* nptr); // C99 |
| 39 double strtod (const char* restrict nptr, char** restrict endptr); |
| 40 float strtof (const char* restrict nptr, char** restrict endptr);
// C99 |
| 41 long double strtold (const char* restrict nptr, char** restrict endptr);
// C99 |
| 42 long strtol (const char* restrict nptr, char** restrict endptr, i
nt base); |
| 43 long long strtoll (const char* restrict nptr, char** restrict endptr, i
nt base); // C99 |
| 44 unsigned long strtoul (const char* restrict nptr, char** restrict endptr, i
nt base); |
| 45 unsigned long long strtoull(const char* restrict nptr, char** restrict endptr, i
nt base); // C99 |
| 46 int rand(void); |
| 47 void srand(unsigned int seed); |
| 48 void* calloc(size_t nmemb, size_t size); |
| 49 void free(void* ptr); |
| 50 void* malloc(size_t size); |
| 51 void* realloc(void* ptr, size_t size); |
| 52 void abort(void); |
| 53 int atexit(void (*func)(void)); |
| 54 void exit(int status); |
| 55 void _Exit(int status); |
| 56 char* getenv(const char* name); |
| 57 int system(const char* string); |
| 58 void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, |
| 59 int (*compar)(const void *, const void *)); |
| 60 void qsort(void* base, size_t nmemb, size_t size, |
| 61 int (*compar)(const void *, const void *)); |
| 62 int abs( int j); |
| 63 long abs( long j); |
| 64 long long abs(long long j); // C++
0X |
| 65 long labs( long j); |
| 66 long long llabs(long long j); // C99 |
| 67 div_t div( int numer, int denom); |
| 68 ldiv_t div( long numer, long denom); |
| 69 lldiv_t div(long long numer, long long denom); // C++
0X |
| 70 ldiv_t ldiv( long numer, long denom); |
| 71 lldiv_t lldiv(long long numer, long long denom); // C99 |
| 72 int mblen(const char* s, size_t n); |
| 73 int mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n); |
| 74 int wctomb(char* s, wchar_t wchar); |
| 75 size_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n); |
| 76 size_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n); |
| 77 int at_quick_exit(void (*func)(void)) // C++
11 |
| 78 void quick_exit(int status); // C++
11 |
| 79 void *aligned_alloc(size_t alignment, size_t size); // C11 |
| 80 |
| 81 } // std |
| 82 |
| 83 */ |
| 84 |
| 85 #include <__config> |
| 86 #include <stdlib.h> |
| 87 #ifdef _LIBCPP_MSVCRT |
| 88 #include "support/win32/locale_win32.h" |
| 89 #endif // _LIBCPP_MSVCRT |
| 90 |
| 91 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
| 92 #pragma GCC system_header |
| 93 #endif |
| 94 |
| 95 _LIBCPP_BEGIN_NAMESPACE_STD |
| 96 |
| 97 using ::size_t; |
| 98 using ::div_t; |
| 99 using ::ldiv_t; |
| 100 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 101 using ::lldiv_t; |
| 102 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 103 using ::atof; |
| 104 using ::atoi; |
| 105 using ::atol; |
| 106 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 107 using ::atoll; |
| 108 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 109 using ::strtod; |
| 110 using ::strtof; |
| 111 using ::strtold; |
| 112 using ::strtol; |
| 113 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 114 using ::strtoll; |
| 115 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 116 using ::strtoul; |
| 117 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 118 using ::strtoull; |
| 119 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 120 using ::rand; |
| 121 using ::srand; |
| 122 using ::calloc; |
| 123 using ::free; |
| 124 using ::malloc; |
| 125 using ::realloc; |
| 126 using ::abort; |
| 127 using ::atexit; |
| 128 using ::exit; |
| 129 using ::_Exit; |
| 130 using ::getenv; |
| 131 using ::system; |
| 132 using ::bsearch; |
| 133 using ::qsort; |
| 134 using ::abs; |
| 135 using ::labs; |
| 136 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 137 using ::llabs; |
| 138 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 139 using ::div; |
| 140 using ::ldiv; |
| 141 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 142 using ::lldiv; |
| 143 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 144 using ::mblen; |
| 145 using ::mbtowc; |
| 146 using ::wctomb; |
| 147 using ::mbstowcs; |
| 148 using ::wcstombs; |
| 149 #ifdef _LIBCPP_HAS_QUICK_EXIT |
| 150 using ::at_quick_exit; |
| 151 using ::quick_exit; |
| 152 #endif |
| 153 #ifdef _LIBCPP_HAS_C11_FEATURES |
| 154 using ::aligned_alloc; |
| 155 #endif |
| 156 |
| 157 // MSVCRT already has the correct prototype in <stdlib.h> #ifdef __cplusplus |
| 158 #if !defined(_LIBCPP_MSVCRT) && !defined(__sun__) && !defined(_AIX) |
| 159 inline _LIBCPP_INLINE_VISIBILITY long abs( long __x) _NOEXCEPT {return
labs(__x);} |
| 160 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 161 inline _LIBCPP_INLINE_VISIBILITY long long abs(long long __x) _NOEXCEPT {return
llabs(__x);} |
| 162 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 163 |
| 164 inline _LIBCPP_INLINE_VISIBILITY ldiv_t div( long __x, long __y) _NOEX
CEPT {return ldiv(__x, __y);} |
| 165 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 166 inline _LIBCPP_INLINE_VISIBILITY lldiv_t div(long long __x, long long __y) _NOEX
CEPT {return lldiv(__x, __y);} |
| 167 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 168 #endif // _LIBCPP_MSVCRT |
| 169 |
| 170 _LIBCPP_END_NAMESPACE_STD |
| 171 |
| 172 #endif // _LIBCPP_CSTDLIB |
OLD | NEW |