// -*- C++ -*- forwarding header.// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,// 2009, 2010 Free Software Foundation, Inc.//// This file is part of the GNU ISO C++ Library. This library is free// software; you can redistribute it and/or modify it under the// terms of the GNU General Public License as published by the// Free Software Foundation; either version 3, or (at your option)// any later version.// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// Under Section 7 of GPL version 3, you are granted additional// permissions described in the GCC Runtime Library Exception, version// 3.1, as published by the Free Software Foundation.// You should have received a copy of the GNU General Public License and// a copy of the GCC Runtime Library Exception along with this program;// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see// <http://www.gnu.org/licenses/>./** @file include/cstdlib* This is a Standard C++ Library file. You should @c #include this file* in your programs, rather than any of the @a *.h implementation files.** This is the C++ version of the Standard C Library header @c stdlib.h,* and its contents are (mostly) the same as that header, but are all* contained in the namespace @c std (except for names which are defined* as macros in C).*///// ISO C++ 14882: 20.4.6 C library//#ifndef _GLIBCXX_CSTDLIB#define _GLIBCXX_CSTDLIB 1#pragma GCC system_header#include <bits/c++config.h>#if !_GLIBCXX_HOSTED// The C standard does not require a freestanding implementation to// provide <stdlib.h>. However, the C++ standard does still require// <cstdlib> -- but only the functionality mentioned in// [lib.support.start.term].#define EXIT_SUCCESS 0#define EXIT_FAILURE 1namespace std{extern "C" void abort(void) throw () _GLIBCXX_NORETURN;extern "C" int atexit(void (*)()) throw ();extern "C" void exit(int) throw () _GLIBCXX_NORETURN;} // namespace#else#include <stdlib.h>// Get rid of those macros defined in <stdlib.h> in lieu of real functions.#undef abort#undef abs#undef atexit#undef atof#undef atoi#undef atol#undef bsearch#undef calloc#undef div#undef exit#undef free#undef getenv#undef labs#undef ldiv#undef malloc#undef mblen#undef mbstowcs#undef mbtowc#undef qsort#undef rand#undef realloc#undef srand#undef strtod#undef strtol#undef strtoul#undef system#undef wcstombs#undef wctombnamespace std _GLIBCXX_VISIBILITY(default){_GLIBCXX_BEGIN_NAMESPACE_VERSIONusing ::div_t;using ::ldiv_t;using ::abort;using ::abs;using ::atexit;using ::atof;using ::atoi;using ::atol;using ::bsearch;using ::calloc;using ::div;using ::exit;using ::free;using ::getenv;using ::labs;using ::ldiv;using ::malloc;#ifdef _GLIBCXX_HAVE_MBSTATE_Tusing ::mblen;using ::mbstowcs;using ::mbtowc;#endif // _GLIBCXX_HAVE_MBSTATE_Tusing ::qsort;using ::rand;using ::realloc;using ::srand;using ::strtod;using ::strtol;using ::strtoul;using ::system;#ifdef _GLIBCXX_USE_WCHAR_Tusing ::wcstombs;using ::wctomb;#endif // _GLIBCXX_USE_WCHAR_Tinline longabs(long __i) { return labs(__i); }inline ldiv_tdiv(long __i, long __j) { return ldiv(__i, __j); }_GLIBCXX_END_NAMESPACE_VERSION} // namespace#if _GLIBCXX_USE_C99#undef _Exit#undef llabs#undef lldiv#undef atoll#undef strtoll#undef strtoull#undef strtof#undef strtoldnamespace __gnu_cxx _GLIBCXX_VISIBILITY(default){_GLIBCXX_BEGIN_NAMESPACE_VERSION#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMICusing ::lldiv_t;#endif#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMICextern "C" void (_Exit)(int) throw () _GLIBCXX_NORETURN;#endif#if !_GLIBCXX_USE_C99_DYNAMICusing ::_Exit;#endifinline long longabs(long long __x) { return __x >= 0 ? __x : -__x; }#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMICusing ::llabs;inline lldiv_tdiv(long long __n, long long __d){ lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }using ::lldiv;#endif#if _GLIBCXX_USE_C99_LONG_LONG_CHECK || _GLIBCXX_USE_C99_LONG_LONG_DYNAMICextern "C" long long int (atoll)(const char *) throw ();extern "C" long long int(strtoll)(const char * __restrict, char ** __restrict, int) throw ();extern "C" unsigned long long int(strtoull)(const char * __restrict, char ** __restrict, int) throw ();#endif#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMICusing ::atoll;using ::strtoll;using ::strtoull;#endifusing ::strtof;using ::strtold;_GLIBCXX_END_NAMESPACE_VERSION} // namespace __gnu_cxxnamespace std{#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMICusing ::__gnu_cxx::lldiv_t;#endifusing ::__gnu_cxx::_Exit;using ::__gnu_cxx::abs;#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMICusing ::__gnu_cxx::llabs;using ::__gnu_cxx::div;using ::__gnu_cxx::lldiv;#endifusing ::__gnu_cxx::atoll;using ::__gnu_cxx::strtof;using ::__gnu_cxx::strtoll;using ::__gnu_cxx::strtoull;using ::__gnu_cxx::strtold;} // namespace std#endif // _GLIBCXX_USE_C99#endif // !_GLIBCXX_HOSTED#endif