diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /libstdc++-v3/src/limits.cc | |
download | cbb-gcc-4.6.4-15d2061ac0796199866debe9ac87130894b0cdd3.tar.bz2 cbb-gcc-4.6.4-15d2061ac0796199866debe9ac87130894b0cdd3.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig;
imported gcc-4.6.4 source tree from verified upstream tarball.
downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.
if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
Diffstat (limited to 'libstdc++-v3/src/limits.cc')
-rw-r--r-- | libstdc++-v3/src/limits.cc | 551 |
1 files changed, 551 insertions, 0 deletions
diff --git a/libstdc++-v3/src/limits.cc b/libstdc++-v3/src/limits.cc new file mode 100644 index 000000000..5a21239d1 --- /dev/null +++ b/libstdc++-v3/src/limits.cc @@ -0,0 +1,551 @@ +// Static data members of -*- C++ -*- numeric_limits classes + +// Copyright (C) 1999, 2001, 2002, 2005, 2006, 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/>. + +// Written by Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr> + +// +// ISO C++ 14882:1998 +// 18.2.1 +// + +#include <limits> + +namespace std _GLIBCXX_VISIBILITY(default) +{ +_GLIBCXX_BEGIN_NAMESPACE_VERSION + +#define const _GLIBCXX_USE_CONSTEXPR + + const bool __numeric_limits_base::is_specialized; + const int __numeric_limits_base::digits; + const int __numeric_limits_base::digits10; + const int __numeric_limits_base::max_digits10; + const bool __numeric_limits_base::is_signed; + const bool __numeric_limits_base::is_integer; + const bool __numeric_limits_base::is_exact; + const int __numeric_limits_base::radix; + const int __numeric_limits_base::min_exponent; + const int __numeric_limits_base::min_exponent10; + const int __numeric_limits_base::max_exponent; + const int __numeric_limits_base::max_exponent10; + const bool __numeric_limits_base::has_infinity; + const bool __numeric_limits_base::has_quiet_NaN; + const bool __numeric_limits_base::has_signaling_NaN; + const float_denorm_style __numeric_limits_base::has_denorm; + const bool __numeric_limits_base::has_denorm_loss; + const bool __numeric_limits_base::is_iec559; + const bool __numeric_limits_base::is_bounded; + const bool __numeric_limits_base::is_modulo; + const bool __numeric_limits_base::traps; + const bool __numeric_limits_base::tinyness_before; + const float_round_style __numeric_limits_base::round_style; + + // bool + const bool numeric_limits<bool>::is_specialized; + const int numeric_limits<bool>::digits; + const int numeric_limits<bool>::digits10; + const int numeric_limits<bool>::max_digits10; + const bool numeric_limits<bool>::is_signed; + const bool numeric_limits<bool>::is_integer; + const bool numeric_limits<bool>::is_exact; + const int numeric_limits<bool>::radix; + const int numeric_limits<bool>::min_exponent; + const int numeric_limits<bool>::min_exponent10; + const int numeric_limits<bool>::max_exponent; + const int numeric_limits<bool>::max_exponent10; + const bool numeric_limits<bool>::has_infinity; + const bool numeric_limits<bool>::has_quiet_NaN; + const bool numeric_limits<bool>::has_signaling_NaN; + const float_denorm_style numeric_limits<bool>::has_denorm; + const bool numeric_limits<bool>::has_denorm_loss; + const bool numeric_limits<bool>::is_iec559; + const bool numeric_limits<bool>::is_bounded; + const bool numeric_limits<bool>::is_modulo; + const bool numeric_limits<bool>::traps; + const bool numeric_limits<bool>::tinyness_before; + const float_round_style numeric_limits<bool>::round_style; + + // char + const bool numeric_limits<char>::is_specialized; + const int numeric_limits<char>::digits; + const int numeric_limits<char>::digits10; + const int numeric_limits<char>::max_digits10; + const bool numeric_limits<char>::is_signed; + const bool numeric_limits<char>::is_integer; + const bool numeric_limits<char>::is_exact; + const int numeric_limits<char>::radix; + const int numeric_limits<char>::min_exponent; + const int numeric_limits<char>::min_exponent10; + const int numeric_limits<char>::max_exponent; + const int numeric_limits<char>::max_exponent10; + const bool numeric_limits<char>::has_infinity; + const bool numeric_limits<char>::has_quiet_NaN; + const bool numeric_limits<char>::has_signaling_NaN; + const float_denorm_style numeric_limits<char>::has_denorm; + const bool numeric_limits<char>::has_denorm_loss; + const bool numeric_limits<char>::is_iec559; + const bool numeric_limits<char>::is_bounded; + const bool numeric_limits<char>::is_modulo; + const bool numeric_limits<char>::traps; + const bool numeric_limits<char>::tinyness_before; + const float_round_style numeric_limits<char>::round_style; + + // signed char + const bool numeric_limits<signed char>::is_specialized; + const int numeric_limits<signed char>::digits; + const int numeric_limits<signed char>::digits10; + const int numeric_limits<signed char>::max_digits10; + const bool numeric_limits<signed char>::is_signed; + const bool numeric_limits<signed char>::is_integer; + const bool numeric_limits<signed char>::is_exact; + const int numeric_limits<signed char>::radix; + const int numeric_limits<signed char>::min_exponent; + const int numeric_limits<signed char>::min_exponent10; + const int numeric_limits<signed char>::max_exponent; + const int numeric_limits<signed char>::max_exponent10; + const bool numeric_limits<signed char>::has_infinity; + const bool numeric_limits<signed char>::has_quiet_NaN; + const bool numeric_limits<signed char>::has_signaling_NaN; + const float_denorm_style numeric_limits<signed char>::has_denorm; + const bool numeric_limits<signed char>::has_denorm_loss; + const bool numeric_limits<signed char>::is_iec559; + const bool numeric_limits<signed char>::is_bounded; + const bool numeric_limits<signed char>::is_modulo; + const bool numeric_limits<signed char>::traps; + const bool numeric_limits<signed char>::tinyness_before; + const float_round_style numeric_limits<signed char>::round_style; + + // unsigned char + const bool numeric_limits<unsigned char>::is_specialized; + const int numeric_limits<unsigned char>::digits; + const int numeric_limits<unsigned char>::digits10; + const int numeric_limits<unsigned char>::max_digits10; + const bool numeric_limits<unsigned char>::is_signed; + const bool numeric_limits<unsigned char>::is_integer; + const bool numeric_limits<unsigned char>::is_exact; + const int numeric_limits<unsigned char>::radix; + const int numeric_limits<unsigned char>::min_exponent; + const int numeric_limits<unsigned char>::min_exponent10; + const int numeric_limits<unsigned char>::max_exponent; + const int numeric_limits<unsigned char>::max_exponent10; + const bool numeric_limits<unsigned char>::has_infinity; + const bool numeric_limits<unsigned char>::has_quiet_NaN; + const bool numeric_limits<unsigned char>::has_signaling_NaN; + const float_denorm_style numeric_limits<unsigned char>::has_denorm; + const bool numeric_limits<unsigned char>::has_denorm_loss; + const bool numeric_limits<unsigned char>::is_iec559; + const bool numeric_limits<unsigned char>::is_bounded; + const bool numeric_limits<unsigned char>::is_modulo; + const bool numeric_limits<unsigned char>::traps; + const bool numeric_limits<unsigned char>::tinyness_before; + const float_round_style numeric_limits<unsigned char>::round_style; + + // wchar_t + // This used to be problematic... +#ifdef _GLIBCXX_USE_WCHAR_T + const bool numeric_limits<wchar_t>::is_specialized; + const int numeric_limits<wchar_t>::digits; + const int numeric_limits<wchar_t>::digits10; + const int numeric_limits<wchar_t>::max_digits10; + const bool numeric_limits<wchar_t>::is_signed; + const bool numeric_limits<wchar_t>::is_integer; + const bool numeric_limits<wchar_t>::is_exact; + const int numeric_limits<wchar_t>::radix; + const int numeric_limits<wchar_t>::min_exponent; + const int numeric_limits<wchar_t>::min_exponent10; + const int numeric_limits<wchar_t>::max_exponent; + const int numeric_limits<wchar_t>::max_exponent10; + const bool numeric_limits<wchar_t>::has_infinity; + const bool numeric_limits<wchar_t>::has_quiet_NaN; + const bool numeric_limits<wchar_t>::has_signaling_NaN; + const float_denorm_style numeric_limits<wchar_t>::has_denorm; + const bool numeric_limits<wchar_t>::has_denorm_loss; + const bool numeric_limits<wchar_t>::is_iec559; + const bool numeric_limits<wchar_t>::is_bounded; + const bool numeric_limits<wchar_t>::is_modulo; + const bool numeric_limits<wchar_t>::traps; + const bool numeric_limits<wchar_t>::tinyness_before; + const float_round_style numeric_limits<wchar_t>::round_style; +#endif // _GLIBCXX_USE_WCHAR_T + + // short + const bool numeric_limits<short>::is_specialized; + const int numeric_limits<short>::digits; + const int numeric_limits<short>::digits10; + const int numeric_limits<short>::max_digits10; + const bool numeric_limits<short>::is_signed; + const bool numeric_limits<short>::is_integer; + const bool numeric_limits<short>::is_exact; + const int numeric_limits<short>::radix; + const int numeric_limits<short>::min_exponent; + const int numeric_limits<short>::min_exponent10; + const int numeric_limits<short>::max_exponent; + const int numeric_limits<short>::max_exponent10; + const bool numeric_limits<short>::has_infinity; + const bool numeric_limits<short>::has_quiet_NaN; + const bool numeric_limits<short>::has_signaling_NaN; + const float_denorm_style numeric_limits<short>::has_denorm; + const bool numeric_limits<short>::has_denorm_loss; + const bool numeric_limits<short>::is_iec559; + const bool numeric_limits<short>::is_bounded; + const bool numeric_limits<short>::is_modulo; + const bool numeric_limits<short>::traps; + const bool numeric_limits<short>::tinyness_before; + const float_round_style numeric_limits<short>::round_style; + + // unsigned short + const bool numeric_limits<unsigned short>::is_specialized; + const int numeric_limits<unsigned short>::digits; + const int numeric_limits<unsigned short>::digits10; + const int numeric_limits<unsigned short>::max_digits10; + const bool numeric_limits<unsigned short>::is_signed; + const bool numeric_limits<unsigned short>::is_integer; + const bool numeric_limits<unsigned short>::is_exact; + const int numeric_limits<unsigned short>::radix; + const int numeric_limits<unsigned short>::min_exponent; + const int numeric_limits<unsigned short>::min_exponent10; + const int numeric_limits<unsigned short>::max_exponent; + const int numeric_limits<unsigned short>::max_exponent10; + const bool numeric_limits<unsigned short>::has_infinity; + const bool numeric_limits<unsigned short>::has_quiet_NaN; + const bool numeric_limits<unsigned short>::has_signaling_NaN; + const float_denorm_style numeric_limits<unsigned short>::has_denorm; + const bool numeric_limits<unsigned short>::has_denorm_loss; + const bool numeric_limits<unsigned short>::is_iec559; + const bool numeric_limits<unsigned short>::is_bounded; + const bool numeric_limits<unsigned short>::is_modulo; + const bool numeric_limits<unsigned short>::traps; + const bool numeric_limits<unsigned short>::tinyness_before; + const float_round_style numeric_limits<unsigned short>::round_style; + + // int + const bool numeric_limits<int>::is_specialized; + const int numeric_limits<int>::digits; + const int numeric_limits<int>::digits10; + const int numeric_limits<int>::max_digits10; + const bool numeric_limits<int>::is_signed; + const bool numeric_limits<int>::is_integer; + const bool numeric_limits<int>::is_exact; + const int numeric_limits<int>::radix; + const int numeric_limits<int>::min_exponent; + const int numeric_limits<int>::min_exponent10; + const int numeric_limits<int>::max_exponent; + const int numeric_limits<int>::max_exponent10; + const bool numeric_limits<int>::has_infinity; + const bool numeric_limits<int>::has_quiet_NaN; + const bool numeric_limits<int>::has_signaling_NaN; + const float_denorm_style numeric_limits<int>::has_denorm; + const bool numeric_limits<int>::has_denorm_loss; + const bool numeric_limits<int>::is_iec559; + const bool numeric_limits<int>::is_bounded; + const bool numeric_limits<int>::is_modulo; + const bool numeric_limits<int>::traps; + const bool numeric_limits<int>::tinyness_before; + const float_round_style numeric_limits<int>::round_style; + + // unsigned int + const bool numeric_limits<unsigned int>::is_specialized; + const int numeric_limits<unsigned int>::digits; + const int numeric_limits<unsigned int>::digits10; + const int numeric_limits<unsigned int>::max_digits10; + const bool numeric_limits<unsigned int>::is_signed; + const bool numeric_limits<unsigned int>::is_integer; + const bool numeric_limits<unsigned int>::is_exact; + const int numeric_limits<unsigned int>::radix; + const int numeric_limits<unsigned int>::min_exponent; + const int numeric_limits<unsigned int>::min_exponent10; + const int numeric_limits<unsigned int>::max_exponent; + const int numeric_limits<unsigned int>::max_exponent10; + const bool numeric_limits<unsigned int>::has_infinity; + const bool numeric_limits<unsigned int>::has_quiet_NaN; + const bool numeric_limits<unsigned int>::has_signaling_NaN; + const float_denorm_style numeric_limits<unsigned int>::has_denorm; + const bool numeric_limits<unsigned int>::has_denorm_loss; + const bool numeric_limits<unsigned int>::is_iec559; + const bool numeric_limits<unsigned int>::is_bounded; + const bool numeric_limits<unsigned int>::is_modulo; + const bool numeric_limits<unsigned int>::traps; + const bool numeric_limits<unsigned int>::tinyness_before; + const float_round_style numeric_limits<unsigned int>::round_style; + + // long + const bool numeric_limits<long>::is_specialized; + const int numeric_limits<long>::digits; + const int numeric_limits<long>::digits10; + const int numeric_limits<long>::max_digits10; + const bool numeric_limits<long>::is_signed; + const bool numeric_limits<long>::is_integer; + const bool numeric_limits<long>::is_exact; + const int numeric_limits<long>::radix; + const int numeric_limits<long>::min_exponent; + const int numeric_limits<long>::min_exponent10; + const int numeric_limits<long>::max_exponent; + const int numeric_limits<long>::max_exponent10; + const bool numeric_limits<long>::has_infinity; + const bool numeric_limits<long>::has_quiet_NaN; + const bool numeric_limits<long>::has_signaling_NaN; + const float_denorm_style numeric_limits<long>::has_denorm; + const bool numeric_limits<long>::has_denorm_loss; + const bool numeric_limits<long>::is_iec559; + const bool numeric_limits<long>::is_bounded; + const bool numeric_limits<long>::is_modulo; + const bool numeric_limits<long>::traps; + const bool numeric_limits<long>::tinyness_before; + const float_round_style numeric_limits<long>::round_style; + + // unsigned long + const bool numeric_limits<unsigned long>::is_specialized; + const int numeric_limits<unsigned long>::digits; + const int numeric_limits<unsigned long>::digits10; + const int numeric_limits<unsigned long>::max_digits10; + const bool numeric_limits<unsigned long>::is_signed; + const bool numeric_limits<unsigned long>::is_integer; + const bool numeric_limits<unsigned long>::is_exact; + const int numeric_limits<unsigned long>::radix; + const int numeric_limits<unsigned long>::min_exponent; + const int numeric_limits<unsigned long>::min_exponent10; + const int numeric_limits<unsigned long>::max_exponent; + const int numeric_limits<unsigned long>::max_exponent10; + const bool numeric_limits<unsigned long>::has_infinity; + const bool numeric_limits<unsigned long>::has_quiet_NaN; + const bool numeric_limits<unsigned long>::has_signaling_NaN; + const float_denorm_style numeric_limits<unsigned long>::has_denorm; + const bool numeric_limits<unsigned long>::has_denorm_loss; + const bool numeric_limits<unsigned long>::is_iec559; + const bool numeric_limits<unsigned long>::is_bounded; + const bool numeric_limits<unsigned long>::is_modulo; + const bool numeric_limits<unsigned long>::traps; + const bool numeric_limits<unsigned long>::tinyness_before; + const float_round_style numeric_limits<unsigned long>::round_style; + + // NOTA BENE: long long is an extension + const bool numeric_limits<long long>::is_specialized; + const int numeric_limits<long long>::digits; + const int numeric_limits<long long>::digits10; + const int numeric_limits<long long>::max_digits10; + const bool numeric_limits<long long>::is_signed; + const bool numeric_limits<long long>::is_integer; + const bool numeric_limits<long long>::is_exact; + const int numeric_limits<long long>::radix; + const int numeric_limits<long long>::min_exponent; + const int numeric_limits<long long>::min_exponent10; + const int numeric_limits<long long>::max_exponent; + const int numeric_limits<long long>::max_exponent10; + const bool numeric_limits<long long>::has_infinity; + const bool numeric_limits<long long>::has_quiet_NaN; + const bool numeric_limits<long long>::has_signaling_NaN; + const float_denorm_style numeric_limits<long long>::has_denorm; + const bool numeric_limits<long long>::has_denorm_loss; + const bool numeric_limits<long long>::is_iec559; + const bool numeric_limits<long long>::is_bounded; + const bool numeric_limits<long long>::is_modulo; + const bool numeric_limits<long long>::traps; + const bool numeric_limits<long long>::tinyness_before; + const float_round_style numeric_limits<long long>::round_style; + + const bool numeric_limits<unsigned long long>::is_specialized; + const int numeric_limits<unsigned long long>::digits; + const int numeric_limits<unsigned long long>::digits10; + const int numeric_limits<unsigned long long>::max_digits10; + const bool numeric_limits<unsigned long long>::is_signed; + const bool numeric_limits<unsigned long long>::is_integer; + const bool numeric_limits<unsigned long long>::is_exact; + const int numeric_limits<unsigned long long>::radix; + const int numeric_limits<unsigned long long>::min_exponent; + const int numeric_limits<unsigned long long>::min_exponent10; + const int numeric_limits<unsigned long long>::max_exponent; + const int numeric_limits<unsigned long long>::max_exponent10; + const bool numeric_limits<unsigned long long>::has_infinity; + const bool numeric_limits<unsigned long long>::has_quiet_NaN; + const bool numeric_limits<unsigned long long>::has_signaling_NaN; + const float_denorm_style numeric_limits<unsigned long long>::has_denorm; + const bool numeric_limits<unsigned long long>::has_denorm_loss; + const bool numeric_limits<unsigned long long>::is_iec559; + const bool numeric_limits<unsigned long long>::is_bounded; + const bool numeric_limits<unsigned long long>::is_modulo; + const bool numeric_limits<unsigned long long>::traps; + const bool numeric_limits<unsigned long long>::tinyness_before; + const float_round_style numeric_limits<unsigned long long>::round_style; + + // float + const bool numeric_limits<float>::is_specialized; + const int numeric_limits<float>::digits; + const int numeric_limits<float>::digits10; + const int numeric_limits<float>::max_digits10; + const bool numeric_limits<float>::is_signed; + const bool numeric_limits<float>::is_integer; + const bool numeric_limits<float>::is_exact; + const int numeric_limits<float>::radix; + const int numeric_limits<float>::min_exponent; + const int numeric_limits<float>::min_exponent10; + const int numeric_limits<float>::max_exponent; + const int numeric_limits<float>::max_exponent10; + const bool numeric_limits<float>::has_infinity; + const bool numeric_limits<float>::has_quiet_NaN; + const bool numeric_limits<float>::has_signaling_NaN; + const float_denorm_style numeric_limits<float>::has_denorm; + const bool numeric_limits<float>::has_denorm_loss; + const bool numeric_limits<float>::is_iec559; + const bool numeric_limits<float>::is_bounded; + const bool numeric_limits<float>::is_modulo; + const bool numeric_limits<float>::traps; + const bool numeric_limits<float>::tinyness_before; + const float_round_style numeric_limits<float>::round_style; + + // double + const bool numeric_limits<double>::is_specialized; + const int numeric_limits<double>::digits; + const int numeric_limits<double>::digits10; + const int numeric_limits<double>::max_digits10; + const bool numeric_limits<double>::is_signed; + const bool numeric_limits<double>::is_integer; + const bool numeric_limits<double>::is_exact; + const int numeric_limits<double>::radix; + const int numeric_limits<double>::min_exponent; + const int numeric_limits<double>::min_exponent10; + const int numeric_limits<double>::max_exponent; + const int numeric_limits<double>::max_exponent10; + const bool numeric_limits<double>::has_infinity; + const bool numeric_limits<double>::has_quiet_NaN; + const bool numeric_limits<double>::has_signaling_NaN; + const float_denorm_style numeric_limits<double>::has_denorm; + const bool numeric_limits<double>::has_denorm_loss; + const bool numeric_limits<double>::is_iec559; + const bool numeric_limits<double>::is_bounded; + const bool numeric_limits<double>::is_modulo; + const bool numeric_limits<double>::traps; + const bool numeric_limits<double>::tinyness_before; + const float_round_style numeric_limits<double>::round_style; + + // long double + const bool numeric_limits<long double>::is_specialized; + const int numeric_limits<long double>::digits; + const int numeric_limits<long double>::digits10; + const int numeric_limits<long double>::max_digits10; + const bool numeric_limits<long double>::is_signed; + const bool numeric_limits<long double>::is_integer; + const bool numeric_limits<long double>::is_exact; + const int numeric_limits<long double>::radix; + const int numeric_limits<long double>::min_exponent; + const int numeric_limits<long double>::min_exponent10; + const int numeric_limits<long double>::max_exponent; + const int numeric_limits<long double>::max_exponent10; + const bool numeric_limits<long double>::has_infinity; + const bool numeric_limits<long double>::has_quiet_NaN; + const bool numeric_limits<long double>::has_signaling_NaN; + const float_denorm_style numeric_limits<long double>::has_denorm; + const bool numeric_limits<long double>::has_denorm_loss; + const bool numeric_limits<long double>::is_iec559; + const bool numeric_limits<long double>::is_bounded; + const bool numeric_limits<long double>::is_modulo; + const bool numeric_limits<long double>::traps; + const bool numeric_limits<long double>::tinyness_before; + const float_round_style numeric_limits<long double>::round_style; + + // char16_t + const bool numeric_limits<char16_t>::is_specialized; + const int numeric_limits<char16_t>::digits; + const int numeric_limits<char16_t>::digits10; + const int numeric_limits<char16_t>::max_digits10; + const bool numeric_limits<char16_t>::is_signed; + const bool numeric_limits<char16_t>::is_integer; + const bool numeric_limits<char16_t>::is_exact; + const int numeric_limits<char16_t>::radix; + const int numeric_limits<char16_t>::min_exponent; + const int numeric_limits<char16_t>::min_exponent10; + const int numeric_limits<char16_t>::max_exponent; + const int numeric_limits<char16_t>::max_exponent10; + const bool numeric_limits<char16_t>::has_infinity; + const bool numeric_limits<char16_t>::has_quiet_NaN; + const bool numeric_limits<char16_t>::has_signaling_NaN; + const float_denorm_style numeric_limits<char16_t>::has_denorm; + const bool numeric_limits<char16_t>::has_denorm_loss; + const bool numeric_limits<char16_t>::is_iec559; + const bool numeric_limits<char16_t>::is_bounded; + const bool numeric_limits<char16_t>::is_modulo; + const bool numeric_limits<char16_t>::traps; + const bool numeric_limits<char16_t>::tinyness_before; + const float_round_style numeric_limits<char16_t>::round_style; + + // char32_t + const bool numeric_limits<char32_t>::is_specialized; + const int numeric_limits<char32_t>::digits; + const int numeric_limits<char32_t>::digits10; + const int numeric_limits<char32_t>::max_digits10; + const bool numeric_limits<char32_t>::is_signed; + const bool numeric_limits<char32_t>::is_integer; + const bool numeric_limits<char32_t>::is_exact; + const int numeric_limits<char32_t>::radix; + const int numeric_limits<char32_t>::min_exponent; + const int numeric_limits<char32_t>::min_exponent10; + const int numeric_limits<char32_t>::max_exponent; + const int numeric_limits<char32_t>::max_exponent10; + const bool numeric_limits<char32_t>::has_infinity; + const bool numeric_limits<char32_t>::has_quiet_NaN; + const bool numeric_limits<char32_t>::has_signaling_NaN; + const float_denorm_style numeric_limits<char32_t>::has_denorm; + const bool numeric_limits<char32_t>::has_denorm_loss; + const bool numeric_limits<char32_t>::is_iec559; + const bool numeric_limits<char32_t>::is_bounded; + const bool numeric_limits<char32_t>::is_modulo; + const bool numeric_limits<char32_t>::traps; + const bool numeric_limits<char32_t>::tinyness_before; + const float_round_style numeric_limits<char32_t>::round_style; + +#undef const + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace + +// XXX GLIBCXX_ABI Deprecated +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT + +#define _GLIBCXX_NUM_LIM_COMPAT(type, member, len) \ + extern "C" type _ZNSt14numeric_limitsIeE ## len ## member ## E \ + __attribute__ ((alias ("_ZNSt14numeric_limitsIdE" #len #member "E"))) +_GLIBCXX_NUM_LIM_COMPAT (bool, is_specialized, 14); +_GLIBCXX_NUM_LIM_COMPAT (int, digits, 6); +_GLIBCXX_NUM_LIM_COMPAT (int, digits10, 8); +_GLIBCXX_NUM_LIM_COMPAT (bool, is_signed, 9); +_GLIBCXX_NUM_LIM_COMPAT (bool, is_integer, 10); +_GLIBCXX_NUM_LIM_COMPAT (bool, is_exact, 8); +_GLIBCXX_NUM_LIM_COMPAT (int, radix, 5); +_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent, 12); +_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent10, 14); +_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent, 12); +_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent10, 14); +_GLIBCXX_NUM_LIM_COMPAT (bool, has_infinity, 12); +_GLIBCXX_NUM_LIM_COMPAT (bool, has_quiet_NaN, 13); +_GLIBCXX_NUM_LIM_COMPAT (bool, has_signaling_NaN, 17); +_GLIBCXX_NUM_LIM_COMPAT (std::float_denorm_style, has_denorm, 10); +_GLIBCXX_NUM_LIM_COMPAT (bool, has_denorm_loss, 15); +_GLIBCXX_NUM_LIM_COMPAT (bool, is_iec559, 9); +_GLIBCXX_NUM_LIM_COMPAT (bool, is_bounded, 10); +_GLIBCXX_NUM_LIM_COMPAT (bool, is_modulo, 9); +_GLIBCXX_NUM_LIM_COMPAT (bool, traps, 5); +_GLIBCXX_NUM_LIM_COMPAT (bool, tinyness_before, 15); +_GLIBCXX_NUM_LIM_COMPAT (std::float_round_style, round_style, 11); + +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT |