From 40e5dd580e7913eaf0e2b5436d47659a52b83bcb Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Mon, 9 Oct 2000 08:44:42 +0000 Subject: [PATCH] configopts.html: Edit. 2000-10-10 Benjamin Kosnik * docs/configopts.html: Edit. * libio/Makefile.am (INCLUDES): Remove duplicates, simplify. * libio/Makefile.in: Regenerate. * libmath/Makefile.am (INCLUDES): Remove duplicates, simplify. * libmath/Makefile.in: Regenerate. * libsupc++/Makefile.am (INCLUDES): Remove duplicate. * libsupc++/Makefile.in: Regenerate. * Makefile.am (AM_MAKEFLAGS): Add GLIBCPP_INCLUDES, TOPLEVEL_INCLUDES, LIBMATH_INCLUDES, LIBIO_INCLUDES, CSHADOW_INCLUDES up here. * Makefile.in: Regenerate. * src/Makefile.am (CSHADOW_INCLUDES): Add include/c_std, include/c for shadow headers. (myinstallheaders): Change glibcpp_includedir to GLIBCPP_INCLUDES. Move GLIBCPP_INCLUDES, TOPLEVEL_INCLUDES, LIBMATH_INCLUDES, LIBIO_INCLUDES, CSHADOW_INCLUDES up Makefile hierarchy. * src/Makefile.in: Regenerate. * include/c: New directory. * include/c/bits/(std_cassert.h, std_cctype.h, std_cerrno.h, std_cfloat.h, std_climits.h, std_clocale.h, std_cmath.h, std_csetjmp.h, std_csignal.h, std_cstdarg.h, std_cstddef.h, std_cstdio.h, std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h, std_cwctype.h): Add, moving from... * include/bits: ...here. * include/c_std: New directory. * include/c_std/bits/*: Populate from... * shadow: ...here. Remove directory. From-SVN: r36803 --- libstdc++-v3/include/c/bits/std_cassert.h | 39 +++ libstdc++-v3/include/c/bits/std_cctype.h | 211 +++++++++++++ libstdc++-v3/include/c/bits/std_cerrno.h | 40 +++ libstdc++-v3/include/c/bits/std_cfloat.h | 47 +++ libstdc++-v3/include/c/bits/std_climits.h | 42 +++ libstdc++-v3/include/c/bits/std_clocale.h | 41 +++ libstdc++-v3/include/c/bits/std_cmath.h | 506 ++++++++++++++++++++++++++++++ libstdc++-v3/include/c/bits/std_csetjmp.h | 40 +++ libstdc++-v3/include/c/bits/std_csignal.h | 40 +++ libstdc++-v3/include/c/bits/std_cstdarg.h | 40 +++ libstdc++-v3/include/c/bits/std_cstddef.h | 40 +++ libstdc++-v3/include/c/bits/std_cstdio.h | 61 ++++ libstdc++-v3/include/c/bits/std_cstdlib.h | 54 ++++ libstdc++-v3/include/c/bits/std_cstring.h | 44 +++ libstdc++-v3/include/c/bits/std_ctime.h | 40 +++ libstdc++-v3/include/c/bits/std_cwchar.h | 78 +++++ libstdc++-v3/include/c/bits/std_cwctype.h | 160 ++++++++++ 17 files changed, 1523 insertions(+) create mode 100644 libstdc++-v3/include/c/bits/std_cassert.h create mode 100644 libstdc++-v3/include/c/bits/std_cctype.h create mode 100644 libstdc++-v3/include/c/bits/std_cerrno.h create mode 100644 libstdc++-v3/include/c/bits/std_cfloat.h create mode 100644 libstdc++-v3/include/c/bits/std_climits.h create mode 100644 libstdc++-v3/include/c/bits/std_clocale.h create mode 100644 libstdc++-v3/include/c/bits/std_cmath.h create mode 100644 libstdc++-v3/include/c/bits/std_csetjmp.h create mode 100644 libstdc++-v3/include/c/bits/std_csignal.h create mode 100644 libstdc++-v3/include/c/bits/std_cstdarg.h create mode 100644 libstdc++-v3/include/c/bits/std_cstddef.h create mode 100644 libstdc++-v3/include/c/bits/std_cstdio.h create mode 100644 libstdc++-v3/include/c/bits/std_cstdlib.h create mode 100644 libstdc++-v3/include/c/bits/std_cstring.h create mode 100644 libstdc++-v3/include/c/bits/std_ctime.h create mode 100644 libstdc++-v3/include/c/bits/std_cwchar.h create mode 100644 libstdc++-v3/include/c/bits/std_cwctype.h diff --git a/libstdc++-v3/include/c/bits/std_cassert.h b/libstdc++-v3/include/c/bits/std_cassert.h new file mode 100644 index 0000000..5d9d184 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cassert.h @@ -0,0 +1,39 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 19.2 Assertions +// + +// Note: This is not a conforming implementation. + +// No include guards on this header... + +# pragma GCC system_header +# include_next diff --git a/libstdc++-v3/include/c/bits/std_cctype.h b/libstdc++-v3/include/c/bits/std_cctype.h new file mode 100644 index 0000000..1c1e69c --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cctype.h @@ -0,0 +1,211 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999, 2000 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: +// + +#ifndef _CPP_CCTYPE +#define _CPP_CCTYPE 1 + +// This keeps isanum, et al from being propagated as macros. +#if __linux__ +#define __NO_CTYPE 1 +#endif + +# pragma GCC system_header +# include_next + +// Sequester the C non-inline implementations in the _C_Swamp:: +// namespace, and provide C++ inlines for them in the std:: namespace +// where they belong. + +namespace std +{ + // NB: If not using namespaces, can't have any of these definitions, + // as they will duplicate what's in the global namespace. + +#ifdef toupper + inline int + _S_toupper_helper(int __c) { return toupper(__c); } +# undef toupper + inline int + toupper(int __c) { return _S_toupper_helper(__c); } +#else + inline int + toupper(int __c) { return ::toupper(__c); } +#endif + +#ifdef tolower + inline int + _S_tolower_helper(int __c) { return tolower(__c); } +# undef tolower + inline int + tolower(int __c) { return _S_tolower_helper(__c); } +#else + inline int + tolower(int __c) { return ::tolower(__c); } +#endif + +#ifdef isspace + inline int + _S_isspace_helper(int __c) { return isspace(__c); } +# undef isspace + inline int + isspace(int __c) { return _S_isspace_helper(__c); } +#else + inline int + isspace(int __c) { return ::isspace(__c); } +#endif + +#ifdef isprint + inline int + _S_isprint_helper(int __c) { return isprint(__c); } +# undef isprint + inline int + isprint(int __c) { return _S_isprint_helper(__c); } +#else + inline int + isprint(int __c) { return ::isprint(__c); } +#endif + +#ifdef iscntrl + inline int + _S_iscntrl_helper(int __c) { return iscntrl(__c); } +# undef iscntrl + inline int + iscntrl(int __c) { return _S_iscntrl_helper(__c); } +#else + inline int + iscntrl(int __c) { return ::iscntrl(__c); } +#endif + +#ifdef isupper + inline int + _S_isupper_helper(int __c) { return isupper(__c); } +# undef isupper + inline int + isupper(int __c) { return _S_isupper_helper(__c); } +#else + inline int + isupper(int __c) { return ::isupper(__c); } +#endif + +#ifdef islower + inline int + _S_islower_helper(int __c) { return islower(__c); } +# undef islower + inline int + islower(int __c) { return _S_islower_helper(__c); } +#else + inline int + islower(int __c) { return ::islower(__c); } +#endif + +#ifdef isalpha + inline int + _S_isalpha_helper(int __c) { return isalpha(__c); } +# undef isalpha + inline int + isalpha(int __c) { return _S_isalpha_helper(__c); } +#else + inline int + isalpha(int __c) { return ::isalpha(__c); } +#endif + +#ifdef isdigit + inline int + _S_isdigit_helper(int __c) { return isdigit(__c); } +# undef isdigit + inline int + isdigit(int __c) { return _S_isdigit_helper(__c); } +#else + inline int + isdigit(int __c) { return ::isdigit(__c); } +#endif + +#ifdef ispunct + inline int + _S_ispunct_helper(int __c) { return ispunct(__c); } +# undef ispunct + inline int + ispunct(int __c) { return _S_ispunct_helper(__c); } +#else + inline int + ispunct(int __c) { return ::ispunct(__c); } +#endif + +#ifdef isxdigit + inline int + _S_isxdigit_helper(int __c) { return isxdigit(__c); } +# undef isxdigit + inline int + isxdigit(int __c) { return _S_isxdigit_helper(__c); } +#else + inline int + isxdigit(int __c) { return ::isxdigit(__c); } +#endif + +#ifdef isalnum + inline int + _S_isalnum_helper(int __c) { return isalnum(__c); } +# undef isalnum + inline int + isalnum(int __c) { return _S_isalnum_helper(__c); } +#else + inline int + isalnum(int __c) { return ::isalnum(__c); } +#endif + +#ifdef isgraph + inline int + _S_isgraph_helper(int __c) { return isgraph(__c); } +# undef isgraph + inline int + isgraph(int __c) { return _S_isgraph_helper(__c); } +#else + inline int + isgraph(int __c) { return ::isgraph(__c); } +#endif + +} // namespace std + +#endif // _CPP_CCTYPE + + + + + + + + + + + + diff --git a/libstdc++-v3/include/c/bits/std_cerrno.h b/libstdc++-v3/include/c/bits/std_cerrno.h new file mode 100644 index 0000000..abd28d5 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cerrno.h @@ -0,0 +1,40 @@ +// The -*- C++ -*- error number header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 19.3 Error numbers +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CERRNO +#define _CPP_CERRNO 1 +# pragma GCC system_header +# include_next +#endif diff --git a/libstdc++-v3/include/c/bits/std_cfloat.h b/libstdc++-v3/include/c/bits/std_cfloat.h new file mode 100644 index 0000000..8a317fc --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cfloat.h @@ -0,0 +1,47 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 18.2.2 Implementation properties: C library +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CFLOAT +#define _CPP_CFLOAT 1 +# pragma GCC system_header +# include_next + +#if 0 +# ifdef __GLIBC__ +// For GNU libc we must also include this one: +# include +# endif +#endif +#endif diff --git a/libstdc++-v3/include/c/bits/std_climits.h b/libstdc++-v3/include/c/bits/std_climits.h new file mode 100644 index 0000000..ddd6bd8 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_climits.h @@ -0,0 +1,42 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999, 2000 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 18.2.2 Implementation properties: C library +// + +// Note: This is not a conforming implementation. + +#ifndef _CPP_CLIMITS +#define _CPP_CLIMITS 1 +# pragma GCC system_header +# include_next +#endif + + diff --git a/libstdc++-v3/include/c/bits/std_clocale.h b/libstdc++-v3/include/c/bits/std_clocale.h new file mode 100644 index 0000000..a8a44b8 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_clocale.h @@ -0,0 +1,41 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 18.2.2 Implementation properties: C library +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CLOCALE +#define _CPP_CLOCALE 1 +# pragma GCC system_header +# include_next +#endif + diff --git a/libstdc++-v3/include/c/bits/std_cmath.h b/libstdc++-v3/include/c/bits/std_cmath.h new file mode 100644 index 0000000..d7df14b --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cmath.h @@ -0,0 +1,506 @@ +// -*- C++ -*- C math library. + +// Copyright (C) 1997, 1998, 1999, 2000 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 26.5 C library +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CMATH +#define _CPP_CMATH 1 +# pragma GCC system_header +# include_next +# include_next + +# include + +namespace std { + + // + // int + // + + inline int abs(int i) + { return i > 0 ? i : -i; } + + inline long abs(long i) + { return i > 0 ? i : -i; } + + // + // float + // + +#if _GLIBCPP_HAVE___BUILTIN_FABSF + inline float abs(float __x) + { return __builtin_fabsf(__x); } +#elif _GLIBCPP_HAVE_FABSF + inline float abs(float __x) + { return ::fabsf(__x); } +#else + inline float abs(float __x) + { return ::fabs(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_ACOSF + inline float acos(float __x) + { return ::acosf(__x); } +#else + inline float acos(float __x) + { return ::acos(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_ASINF + inline float asin(float __x) + { return ::asinf(__x); } +#else + inline float asin(float __x) + { return ::asin(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_ATANF + inline float atan(float __x) + { return ::atanf(__x); } +#else + inline float atan(float __x) + { return ::atan(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_ATAN2F + inline float atan2(float __y, float __x) + { return ::atan2f(__y, __x); } +#else + inline float atan2(float __y, float __x) + { return ::atan2(static_cast(__y), static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_CEILF + inline float ceil(float __x) + { return ::ceilf(__x); } +#else + inline float ceil(float __x) + { return ::ceil(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE___BUILTIN_COSF + inline float cos(float __x) + { return __builtin_cosf(__x); } +#elif _GLIBCPP_HAVE_COSF + inline float cos(float __x) + { return ::cosf(__x); } +#else + inline float cos(float __x) + { return ::cos(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_COSHF + inline float cosh(float __x) + { return ::coshf(__x); } +#else + inline float cosh(float __x) + { return ::cosh(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_EXPF + inline float exp(float __x) + { return ::expf(__x); } +#else + inline float exp(float __x) + { return ::exp(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE___BUILTIN_FABSF + inline float fabs(float __x) + { return __builtin_fabsf(__x); } +#elif _GLIBCPP_HAVE_FABSF + inline float fabs(float __x) + { return ::fabsf(__x); } +#else + inline float fabs(float __x) + { return ::fabs(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_FLOORF + inline float floor(float __x) + { return ::floorf(__x); } +#else + inline float floor(float __x) + { return ::floor(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_FMODF + inline float fmod(float __x, float __y) + { return ::fmodf(__x, __y); } +#else + inline float fmod(float __x, float __y) + { return ::fmod(static_cast(__x), static_cast(__y)); } +#endif + +#if _GLIBCPP_HAVE_FREXPF + inline float frexp(float __x, int* __exp) + { return ::frexpf(__x, __exp); } +#else + inline float frexp(float __x, int* __exp) + { return ::frexp(__x, __exp); } +#endif + +#if _GLIBCPP_HAVE_LDEXPF + inline float ldexp(float __x, int __exp) + { return ::ldexpf(__x, __exp); } +#else + inline float ldexp(float __x, int __exp) + { return ::ldexp(static_cast(__x), __exp); } +#endif + +#if _GLIBCPP_HAVE_LOGF + inline float log(float __x) + { return ::logf(__x); } +#else + inline float log(float __x) + { return ::log(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_LOG10F + inline float log10(float __x) + { return ::log10f(__x); } +#else + inline float log10(float __x) + { return ::log10(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_MODFF + inline float modf(float __x, float* __iptr) + { return ::modff(__x, __iptr); } +#else + inline float modf(float __x, float* __iptr) + { + double __tmp; + double __res = ::modf(static_cast(__x), &__tmp); + *__iptr = static_cast (__tmp); + return __res; + } +#endif + +#if _GLIBCPP_HAVE_POWF + inline float pow(float __x, float __y) + { return ::powf(__x, __y); } +#else + inline float pow(float __x, float __y) + { return ::pow(static_cast(__x), static_cast(__y)); } +#endif + + float pow(float, int); + +#if _GLIBCPP_HAVE___BUILTIN_SINF + inline float sin(float __x) + { return __builtin_sinf(__x); } +#elif _GLIBCPP_HAVE_SINF + inline float sin(float __x) + { return ::sinf(__x); } +#else + inline float sin(float __x) + { return ::sin(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_SINHF + inline float sinh(float __x) + { return ::sinhf(__x); } +#else + inline float sinh(float __x) + { return ::sinh(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE___BUILTIN_SQRTF + inline float sqrt(float __x) + { return __builtin_sqrtf(__x); } +#elif _GLIBCPP_HAVE_SQRTF + inline float sqrt(float __x) + { return ::sqrtf(__x); } +#else + inline float sqrt(float __x) + { return ::sqrt(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_TANF + inline float tan(float __x) + { return ::tanf(__x); } +#else + inline float tan(float __x) + { return ::tan(static_cast(__x)); } +#endif + +#if _GLIBCPP_HAVE_TANHF + inline float tanh(float __x) + { return ::tanhf(__x); } +#else + inline float tanh(float __x) + { return ::tanh(static_cast(__x)); } +#endif + + // + // double + // + +#if _GLIBCPP_HAVE___BUILTIN_FABS + inline double abs(double __x) + { return __builtin_fabs(__x); } +#else + inline double abs(double __x) + { return ::fabs(__x); } +#endif + + inline double acos(double __x) + { return ::acos(__x); } + + inline double asin(double __x) + { return ::asin(__x); } + + inline double atan(double __x) + { return ::atan(__x); } + + inline double atan2(double __y, double __x) + { return ::atan2(__y, __x); } + + inline double ceil(double __x) + { return ::ceil(__x); } + +#if _GLIBCPP_HAVE___BUILTIN_COS + inline double cos(double __x) + { return __builtin_cos(__x); } +#else + inline double cos(double __x) + { return ::cos(__x); } +#endif + + inline double cosh(double __x) + { return ::cosh(__x); } + + inline double exp(double __x) + { return ::exp(__x); } + + +#if _GLIBCPP_HAVE___BUILTIN_FABS + inline double fabs(double __x) + { return __builtin_fabs(__x); } +#else + inline double fabs(double __x) + { return ::fabs(__x); } +#endif + + inline double floor(double __x) + { return ::floor(__x); } + + inline double fmod(double __x, double __y) + { return ::fmod(__x, __y); } + + inline double frexp(double __x, int* __exp) + { return ::frexp(__x, __exp); } + + inline double ldexp(double __x, int __exp) + { return ::ldexp(__x, __exp); } + + inline double log(double __x) + { return ::log(__x); } + + inline double log10(double __x) + { return ::log10(__x); } + + inline double modf(double __x, double* __iptr) + { return ::modf(__x, __iptr); } + + inline double pow(double __x, double __y) + { return ::pow(__x, __y); } + + double pow (double, int); + +#if _GLIBCPP_HAVE___BUILTIN_SIN + inline double sin(double __x) + { return __builtin_sin(__x); } +#else + inline double sin(double __x) + { return ::sin(__x); } +#endif + + inline double sinh(double __x) + { return ::sinh(__x); } + +#if _GLIBCPP_HAVE___BUILTIN_SQRT + inline double sqrt(double __x) + { return __builtin_fsqrt(__x); } +#else + inline double sqrt(double __x) + { return ::sqrt(__x); } +#endif + + inline double tan(double __x) + { return ::tan(__x); } + + inline double tanh(double __x) + { return ::tanh(__x); } + + // + // long double + // +#if _GLIBCPP_HAVE___BUILTIN_FABSL + inline long double abs(long double __x) + { return __builtin_fabsl(__x); } +#elif _GLIBCPP_HAVE_FABSL + inline long double abs(long double __x) + { return ::fabsl(__x); } +#endif + +#if _GLIBCPP_HAVE_ACOSL + inline long double acos(long double __x) + { return ::acosl(__x); } +#endif + +#if _GLIBCPP_HAVE_ASINL + inline long double asin(long double __x) + { return ::asinl(__x); } +#endif + +#if _GLIBCPP_HAVE_ATANL + inline long double atan(long double __x) + { return ::atanl(__x); } +#endif + +#if _GLIBCPP_HAVE_ATAN2L + inline long double atan2(long double __y, long double __x) + { return ::atan2l(__y, __x); } +#endif + +#if _GLIBCPP_HAVE_CEILL + inline long double ceil(long double __x) + { return ::ceill(__x); } +#endif + +#if _GLIBCPP_HAVE___BUILTIN_COSL + inline long double cos(long double __x) + { return __builtin_cosl(__x); } +#elif _GLIBCPP_HAVE_COSL + inline long double cos(long double __x) + { return ::cosl(__x); } +#endif + +#if _GLIBCPP_HAVE_COSHL + inline long double cosh(long double __x) + { return ::coshl(__x); } +#endif + +#if _GLIBCPP_HAVE_EXPL + inline long double exp(long double __x) + { return ::expl(__x); } +#endif + +#if _GLIBCPP_HAVE___BUILTIN_FABSL + inline long double fabs(long double __x) + { return __builtin_fabsl(__x); } +#elif _GLIBCPP_HAVE_FABSL + inline long double fabs(long double __x) + { return ::fabsl(__x); } +#endif + +#if _GLIBCPP_HAVE_FLOORL + inline long double floor(long double __x) + { return ::floorl(__x); } +#endif + +#if _GLIBCPP_HAVE_FMODL + inline long double fmod(long double __x, long double __y) + { return ::fmodl(__x, __y); } +#endif + +#if _GLIBCPP_HAVE_FREXPL + inline long double frexp(long double __x, int* __exp) + { return ::frexpl(__x, __exp); } +#endif + +#if _GLIBCPP_HAVE_LDEXPL + inline long double ldexp(long double __x, int __exp) + { return ::ldexpl(__x, __exp); } +#endif + +#if _GLIBCPP_HAVE_LOGL + inline long double log(long double __x) + { return ::logl(__x); } +#endif + +#if _GLIBCPP_HAVE_LOG10L + inline long double log10(long double __x) + { return ::log10l(__x); } +#endif + +#if _GLIBCPP_HAVE_MODFL + inline long double modf(long double __x, long double* __iptr) + { return ::modfl(__x, __iptr); } +#endif + +#if _GLIBCPP_HAVE_POWL + inline long double pow(long double __x, long double __y) + { return ::powl(__x, __y); } +#endif + + long double pow(long double, int); + +#if _GLIBCPP_HAVE___BUILTIN_SINL + inline long double sin(long double __x) + { return __builtin_sinl(__x); } +#elif _GLIBCPP_HAVE_SINL + inline long double sin(long double __x) + { return ::sinl(__x); } +#endif + +#if _GLIBCPP_HAVE_SINHL + inline long double sinh(long double __x) + { return ::sinhl(__x); } +#endif + +#if _GLIBCPP_HAVE___BUILTIN_SQRTL + inline long double sqrt(long double __x) + { return __builtin_sqrtl(__x); } +#elif _GLIBCPP_HAVE_SQRTL + inline long double sqrt(long double __x) + { return ::sqrtl(__x); } +#endif + +#if _GLIBCPP_HAVE_TANL + inline long double tan(long double __x) + { return ::tanl(__x); } +#endif + +#if _GLIBCPP_HAVE_TANHL + inline long double tanh(long double __x) + { return ::tanhl(__x); } +#endif + +} // std + +#endif // _CPP_CMATH + + diff --git a/libstdc++-v3/include/c/bits/std_csetjmp.h b/libstdc++-v3/include/c/bits/std_csetjmp.h new file mode 100644 index 0000000..fc5b339 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_csetjmp.h @@ -0,0 +1,40 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 20.4.6 C library +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CSETJMP +#define _CPP_CSETJMP 1 +# pragma GCC system_header +# include_next +#endif diff --git a/libstdc++-v3/include/c/bits/std_csignal.h b/libstdc++-v3/include/c/bits/std_csignal.h new file mode 100644 index 0000000..34c03eb --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_csignal.h @@ -0,0 +1,40 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 20.4.6 C library +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CSIGNAL +#define _CPP_CSIGNAL 1 +# pragma GCC system_header +# include_next +#endif diff --git a/libstdc++-v3/include/c/bits/std_cstdarg.h b/libstdc++-v3/include/c/bits/std_cstdarg.h new file mode 100644 index 0000000..f7f4235 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cstdarg.h @@ -0,0 +1,40 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 20.4.6 C library +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CSTDARG +#define _CPP_CSTDARG 1 +# pragma GCC system_header +# include_next +#endif diff --git a/libstdc++-v3/include/c/bits/std_cstddef.h b/libstdc++-v3/include/c/bits/std_cstddef.h new file mode 100644 index 0000000..5557c75 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cstddef.h @@ -0,0 +1,40 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 18.1 Types +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CSTDDEF +#define _CPP_CSTDDEF 1 +# pragma GCC system_header +# include_next +#endif diff --git a/libstdc++-v3/include/c/bits/std_cstdio.h b/libstdc++-v3/include/c/bits/std_cstdio.h new file mode 100644 index 0000000..919a03c --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cstdio.h @@ -0,0 +1,61 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 27.8.2 C Library files +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CSTDIO +#define _CPP_CSTDIO 1 +# pragma GCC system_header +# include_next + +#ifndef SEEK_CUR +#define SEEK_CUR 1 +#endif + +#ifndef SEEK_END +#define SEEK_END 2 +#endif + +#ifndef SEEK_SET +#define SEEK_SET 4 +#endif + +#endif + + + + + + + + diff --git a/libstdc++-v3/include/c/bits/std_cstdlib.h b/libstdc++-v3/include/c/bits/std_cstdlib.h new file mode 100644 index 0000000..ee54357 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cstdlib.h @@ -0,0 +1,54 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 20.4.6 C library +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CSTDLIB +#define _CPP_CSTDLIB 1 + +// This keeps isanum, et al from being propagated as macros. +#if __linux__ +#define __USE_ISOC9X 1 +#endif + +# pragma GCC system_header +# include_next + +#endif // _CPP_CSTDLIB + + + + + + + diff --git a/libstdc++-v3/include/c/bits/std_cstring.h b/libstdc++-v3/include/c/bits/std_cstring.h new file mode 100644 index 0000000..06bcdda --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cstring.h @@ -0,0 +1,44 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 20.4.6 C library +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CSTRING +#define _CPP_CSTRING 1 +# if defined __GLIBC__ && __GLIBC__ >= 2 +// We must not see the optimized string functions GNU libc defines. +# define __NO_STRING_INLINES +# endif +# pragma GCC system_header +# include_next +#endif diff --git a/libstdc++-v3/include/c/bits/std_ctime.h b/libstdc++-v3/include/c/bits/std_ctime.h new file mode 100644 index 0000000..b30b318 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_ctime.h @@ -0,0 +1,40 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: 20.5 Date and time +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CTIME +#define _CPP_CTIME 1 +# pragma GCC system_header +# include_next +#endif diff --git a/libstdc++-v3/include/c/bits/std_cwchar.h b/libstdc++-v3/include/c/bits/std_cwchar.h new file mode 100644 index 0000000..77349f9 --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cwchar.h @@ -0,0 +1,78 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997, 1998, 1999, 2000 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: ??? +// + +// Note: this is not a conforming implementation. + +#ifndef _CPP_CWCHAR +#define _CPP_CWCHAR 1 + +#include + +#if _GLIBCPP_USE_WCHAR_T + # pragma GCC system_header + # include_next +#else +# ifdef __cplusplus +extern "C" +{ +#endif + typedef struct + { + int __fill[6]; + } mbstate_t; +# ifdef __cplusplus +} +# endif +#endif //_GLIBCPP_USE_WCHAR_T + +#endif // _CPP_CWCHAR + + + + + + + + + + + + + + + + + + + + diff --git a/libstdc++-v3/include/c/bits/std_cwctype.h b/libstdc++-v3/include/c/bits/std_cwctype.h new file mode 100644 index 0000000..c67f2ba --- /dev/null +++ b/libstdc++-v3/include/c/bits/std_cwctype.h @@ -0,0 +1,160 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-1999, 2000 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 2, 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. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// As a special exception, you may use this file as part of a free software +// library without restriction. Specifically, if other files instantiate +// templates or use macros or inline functions from this file, or you compile +// this file and link it with other files to produce an executable, this +// file does not by itself cause the resulting executable to be covered by +// the GNU General Public License. This exception does not however +// invalidate any other reasons why the executable file might be covered by +// the GNU General Public License. + +// +// ISO C++ 14882: +// + +#ifndef _CPP_CWCTYPE +#define _CPP_CWCTYPE 1 + +# pragma GCC system_header +# include_next + +// Sequester the C non-inline implementations in the _C_Swamp:: +// namespace, and provide C++ inlines for them in the std:: namespace +// where they belong. + +namespace std +{ + +#ifdef towupper + inline wint_t + _S_towupper_helper(wint_t __wc) { return towupper(__wc); } +# undef towupper + inline wint_t + towupper(wint_t __wc) { return _S_towupper_helper(__wc); } +#endif + +#ifdef towlower + inline wint_t + _S_towlower_helper(wint_t __wc) { return towlower(__wc); } +# undef towlower + inline wint_t + towlower(wint_t __wc) { return _S_towlower_helper(__wc); } +#endif + +#ifdef iswspace + inline int + _S_iswspace_helper(wint_t __wc) { return iswspace(__wc); } +# undef iswspace + inline int + iswspace(wint_t __wc) { return _S_iswspace_helper(__wc); } +#endif + +#ifdef iswprint + inline int + _S_iswprint_helper(wint_t __wc) { return iswprint(__wc); } +# undef iswprint + inline int + iswprint(wint_t __wc) { return _S_iswprint_helper(__wc); } +#endif + +#ifdef iswcntrl + inline int + _S_iswcntrl_helper(wint_t __wc) { return iswcntrl(__wc); } +# undef iswcntrl + inline int + iswcntrl(wint_t __wc) { return _S_iswcntrl_helper(__wc); } +#endif + +#ifdef iswupper + inline int + _S_iswupper_helper(wint_t __wc) { return iswupper(__wc); } +# undef iswupper + inline int + iswupper(wint_t __wc) { return _S_iswupper_helper(__wc); } +#endif + +#ifdef iswlower + inline int + _S_iswlower_helper(wint_t __wc) { return iswlower(__wc); } +# undef iswlower + inline int + iswlower(wint_t __wc) { return _S_iswlower_helper(__wc); } +#endif + +#ifdef iswalpha + inline int + _S_iswalpha_helper(wint_t __wc) { return iswalpha(__wc); } +# undef iswalpha + inline int + iswalpha(wint_t __wc) { return _S_iswalpha_helper(__wc); } +#endif + +#ifdef iswdigit + inline int + _S_iswdigit_helper(wint_t __wc) { return iswdigit(__wc); } +# undef iswdigit + inline int + iswdigit(wint_t __wc) { return _S_iswdigit_helper(__wc); } +#endif + +#ifdef iswpunct + inline int + _S_iswpunct_helper(wint_t __wc) { return iswpunct(__wc); } +# undef iswpunct + inline int + iswpunct(wint_t __wc) { return _S_iswpunct_helper(__wc); } +#endif + +#ifdef iswxdigit + inline int + _S_iswxdigit_helper (wint_t __wc) { return iswxdigit(__wc); } +# undef iswxdigit + inline int + iswxdigit(wint_t __wc) { return _S_iswxdigit_helper(__wc); } +#endif + +#ifdef iswalnum + inline int + _S_iswalnum_helper(wint_t __wc) { return iswalnum(__wc); } +# undef iswalnum + inline int + iswalnum(wint_t __wc) { return _S_iswalnum_helper(__wc); } +#endif + +#ifdef iswgraph + inline int + _S_iswgraph_helper(wint_t __wc) { return iswgraph(__wc); } +# undef iswgraph + inline int + iswgraph(wint_t __wc) { return _S_iswgraph_helper(__wc); } +#endif + +} // namespace std + +#endif // _CPP_CWCTYPE + + + + + + + -- 2.7.4