__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.217.60: ~ $
// Primitive numeric conversions (to_chars and from_chars) -*- C++ -*-

// Copyright (C) 2017-2024 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/charconv
 *  This is a Standard C++ Library header.
 */

#ifndef _GLIBCXX_CHARCONV
#define _GLIBCXX_CHARCONV 1

#pragma GCC system_header

#include <bits/requires_hosted.h> // for error codes

// As an extension we support <charconv> in C++14, but this header should not
// be included by any other library headers in C++14 mode. This ensures that
// the names defined in this header are not added to namespace std unless a
// user explicitly includes <charconv> in C++14 code.
#if __cplusplus >= 201402L

#include <type_traits>
#include <bit>			// for __bit_width
#include <bits/charconv.h>	// for __to_chars_len, __to_chars_10_impl
#include <bits/error_constants.h> // for std::errc
#include <ext/numeric_traits.h>

#define __glibcxx_want_to_chars
#define __glibcxx_want_constexpr_charconv
#include <bits/version.h>

namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION

  /// Result type of std::to_chars
  struct to_chars_result
  {
    char* ptr;
    errc ec;

#if __cplusplus > 201703L && __cpp_impl_three_way_comparison >= 201907L
    friend bool
    operator==(const to_chars_result&, const to_chars_result&) = default;
#endif
#if __cplusplus > 202302L
    constexpr explicit operator bool() const noexcept { return ec == errc{}; }
#endif
  };

  /// Result type of std::from_chars
  struct from_chars_result
  {
    const char* ptr;
    errc ec;

#if __cplusplus > 201703L && __cpp_impl_three_way_comparison >= 201907L
    friend bool
    operator==(const from_chars_result&, const from_chars_result&) = default;
#endif
#if __cplusplus > 202302L
    constexpr explicit operator bool() const noexcept { return ec == errc{}; }
#endif
  };

namespace __detail
{
  // Pick an unsigned type of suitable size. This is used to reduce the
  // number of specializations of __to_chars_len, __to_chars etc. that
  // get instantiated. For example, to_chars<char> and to_chars<short>
  // and to_chars<unsigned> will all use the same code, and so will
  // to_chars<long> when sizeof(int) == sizeof(long).
  template<typename _Tp>
    struct __to_chars_unsigned_type : __make_unsigned_selector_base
    {
      using _UInts = _List<unsigned int, unsigned long, unsigned long long
#if __SIZEOF_INT128__ > __SIZEOF_LONG_LONG__
	, unsigned __int128
#endif
	>;
      using type = typename __select<sizeof(_Tp), _UInts>::__type;
    };

  template<typename _Tp>
    using __unsigned_least_t = typename __to_chars_unsigned_type<_Tp>::type;

  // Generic implementation for arbitrary bases.
  // Defined in <bits/charconv.h>.
  template<typename _Tp>
    constexpr unsigned
    __to_chars_len(_Tp __value, int __base /* = 10 */) noexcept;

  template<typename _Tp>
    constexpr unsigned
    __to_chars_len_2(_Tp __value) noexcept
    { return std::__bit_width(__value); }

  // Generic implementation for arbitrary bases.
  template<typename _Tp>
    constexpr to_chars_result
    __to_chars(char* __first, char* __last, _Tp __val, int __base) noexcept
    {
      static_assert(__integer_to_chars_is_unsigned<_Tp>, "implementation bug");

      to_chars_result __res;

      const unsigned __len = __to_chars_len(__val, __base);

      if (__builtin_expect((__last - __first) < __len, 0))
	{
	  __res.ptr = __last;
	  __res.ec = errc::value_too_large;
	  return __res;
	}

      unsigned __pos = __len - 1;

      constexpr char __digits[] = {
	'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
	'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
	'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
	'u', 'v', 'w', 'x', 'y', 'z'
      };

      while (__val >= (unsigned)__base)
	{
	  auto const __quo = __val / __base;
	  auto const __rem = __val % __base;
	  __first[__pos--] = __digits[__rem];
	  __val = __quo;
	}
      *__first = __digits[__val];

      __res.ptr = __first + __len;
      __res.ec = {};
      return __res;
    }

  template<typename _Tp>
    constexpr to_chars_result
    __to_chars_16(char* __first, char* __last, _Tp __val) noexcept
    {
      static_assert(__integer_to_chars_is_unsigned<_Tp>, "implementation bug");

      to_chars_result __res;

      const unsigned __len = (__to_chars_len_2(__val) + 3) / 4;

      if (__builtin_expect((__last - __first) < __len, 0))
	{
	  __res.ptr = __last;
	  __res.ec = errc::value_too_large;
	  return __res;
	}

      constexpr char __digits[] = {
	'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
	'a', 'b', 'c', 'd', 'e', 'f'
      };
      unsigned __pos = __len - 1;
      while (__val >= 0x100)
	{
	  auto __num = __val & 0xF;
	  __val >>= 4;
	  __first[__pos] = __digits[__num];
	  __num = __val & 0xF;
	  __val >>= 4;
	  __first[__pos - 1] = __digits[__num];
	  __pos -= 2;
	}
      if (__val >= 0x10)
	{
	  const auto __num = __val & 0xF;
	  __val >>= 4;
	  __first[1] = __digits[__num];
	  __first[0] = __digits[__val];
	}
      else
	__first[0] = __digits[__val];
      __res.ptr = __first + __len;
      __res.ec = {};
      return __res;
    }

  template<typename _Tp>
    constexpr to_chars_result
    __to_chars_10(char* __first, char* __last, _Tp __val) noexcept
    {
      static_assert(__integer_to_chars_is_unsigned<_Tp>, "implementation bug");

      to_chars_result __res;

      const unsigned __len = __to_chars_len(__val, 10);

      if (__builtin_expect((__last - __first) < __len, 0))
	{
	  __res.ptr = __last;
	  __res.ec = errc::value_too_large;
	  return __res;
	}

      __detail::__to_chars_10_impl(__first, __len, __val);
      __res.ptr = __first + __len;
      __res.ec = {};
      return __res;
    }

  template<typename _Tp>
    constexpr to_chars_result
    __to_chars_8(char* __first, char* __last, _Tp __val) noexcept
    {
      static_assert(__integer_to_chars_is_unsigned<_Tp>, "implementation bug");

      to_chars_result __res;
      unsigned __len = 0;

      if _GLIBCXX17_CONSTEXPR (__gnu_cxx::__int_traits<_Tp>::__digits <= 16)
	{
	  __len = __val > 077777u ? 6u
	    : __val > 07777u ? 5u
	    : __val > 0777u ? 4u
	    : __val > 077u ? 3u
	    : __val > 07u ? 2u
	    : 1u;
	}
      else
	__len = (__to_chars_len_2(__val) + 2) / 3;

      if (__builtin_expect((__last - __first) < __len, 0))
	{
	  __res.ptr = __last;
	  __res.ec = errc::value_too_large;
	  return __res;
	}

      unsigned __pos = __len - 1;
      while (__val >= 0100)
	{
	  auto __num = __val & 7;
	  __val >>= 3;
	  __first[__pos] = '0' + __num;
	  __num = __val & 7;
	  __val >>= 3;
	  __first[__pos - 1] = '0' + __num;
	  __pos -= 2;
	}
      if (__val >= 010)
	{
	  auto const __num = __val & 7;
	  __val >>= 3;
	  __first[1] = '0' + __num;
	  __first[0] = '0' + __val;
	}
      else
	__first[0] = '0' + __val;
      __res.ptr = __first + __len;
      __res.ec = {};
      return __res;
    }

  template<typename _Tp>
    constexpr to_chars_result
    __to_chars_2(char* __first, char* __last, _Tp __val) noexcept
    {
      static_assert(__integer_to_chars_is_unsigned<_Tp>, "implementation bug");

      to_chars_result __res;

      const unsigned __len = __to_chars_len_2(__val);

      if (__builtin_expect((__last - __first) < __len, 0))
	{
	  __res.ptr = __last;
	  __res.ec = errc::value_too_large;
	  return __res;
	}

      unsigned __pos = __len - 1;

      while (__pos)
	{
	  __first[__pos--] = '0' + (__val & 1);
	  __val >>= 1;
	}
      // First digit is always '1' because __to_chars_len_2 skips
      // leading zero bits and std::to_chars handles zero values
      // directly.
      __first[0] = '1';

      __res.ptr = __first + __len;
      __res.ec = {};
      return __res;
    }

} // namespace __detail

  template<typename _Tp>
    constexpr to_chars_result
    __to_chars_i(char* __first, char* __last, _Tp __value, int __base = 10)
    {
      __glibcxx_assert(2 <= __base && __base <= 36);

      using _Up = __detail::__unsigned_least_t<_Tp>;
      _Up __unsigned_val = __value;

      if (__first == __last) [[__unlikely__]]
	return { __last, errc::value_too_large };

      if (__value == 0)
	{
	  *__first = '0';
	  return { __first + 1, errc{} };
	}
      else if _GLIBCXX17_CONSTEXPR (std::is_signed<_Tp>::value)
	if (__value < 0)
	  {
	    *__first++ = '-';
	    __unsigned_val = _Up(~__value) + _Up(1);
	  }

      switch (__base)
      {
      case 16:
	return __detail::__to_chars_16(__first, __last, __unsigned_val);
      case 10:
	return __detail::__to_chars_10(__first, __last, __unsigned_val);
      case 8:
	return __detail::__to_chars_8(__first, __last, __unsigned_val);
      case 2:
	return __detail::__to_chars_2(__first, __last, __unsigned_val);
      default:
	return __detail::__to_chars(__first, __last, __unsigned_val, __base);
      }
    }

#define _GLIBCXX_TO_CHARS(T) \
  _GLIBCXX23_CONSTEXPR inline to_chars_result \
  to_chars(char* __first, char* __last, T __value, int __base = 10) \
  { return std::__to_chars_i<T>(__first, __last, __value, __base); }
_GLIBCXX_TO_CHARS(char)
_GLIBCXX_TO_CHARS(signed char)
_GLIBCXX_TO_CHARS(unsigned char)
_GLIBCXX_TO_CHARS(signed short)
_GLIBCXX_TO_CHARS(unsigned short)
_GLIBCXX_TO_CHARS(signed int)
_GLIBCXX_TO_CHARS(unsigned int)
_GLIBCXX_TO_CHARS(signed long)
_GLIBCXX_TO_CHARS(unsigned long)
_GLIBCXX_TO_CHARS(signed long long)
_GLIBCXX_TO_CHARS(unsigned long long)
#if defined(__GLIBCXX_TYPE_INT_N_0)
_GLIBCXX_TO_CHARS(signed __GLIBCXX_TYPE_INT_N_0)
_GLIBCXX_TO_CHARS(unsigned __GLIBCXX_TYPE_INT_N_0)
#endif
#if defined(__GLIBCXX_TYPE_INT_N_1)
_GLIBCXX_TO_CHARS(signed __GLIBCXX_TYPE_INT_N_1)
_GLIBCXX_TO_CHARS(unsigned __GLIBCXX_TYPE_INT_N_1)
#endif
#if defined(__GLIBCXX_TYPE_INT_N_2)
_GLIBCXX_TO_CHARS(signed __GLIBCXX_TYPE_INT_N_2)
_GLIBCXX_TO_CHARS(unsigned __GLIBCXX_TYPE_INT_N_2)
#endif
#if defined(__GLIBCXX_TYPE_INT_N_3)
_GLIBCXX_TO_CHARS(signed __GLIBCXX_TYPE_INT_N_3)
_GLIBCXX_TO_CHARS(unsigned __GLIBCXX_TYPE_INT_N_3)
#endif
#undef _GLIBCXX_TO_CHARS

  // _GLIBCXX_RESOLVE_LIB_DEFECTS
  // 3266. to_chars(bool) should be deleted
  to_chars_result to_chars(char*, char*, bool, int = 10) = delete;

namespace __detail
{
  template<typename _Tp>
    constexpr bool
    __raise_and_add(_Tp& __val, int __base, unsigned char __c)
    {
      if (__builtin_mul_overflow(__val, __base, &__val)
	  || __builtin_add_overflow(__val, __c, &__val))
	return false;
      return true;
    }

  template<bool _DecOnly>
    struct __from_chars_alnum_to_val_table
    {
      struct type { unsigned char __data[1u << __CHAR_BIT__] = {}; };

      // Construct and return a lookup table that maps 0-9, A-Z and a-z to their
      // corresponding base-36 value and maps all other characters to 127.
      static constexpr type
      _S_make_table()
      {
	constexpr unsigned char __lower_letters[27] = "abcdefghijklmnopqrstuvwxyz";
	constexpr unsigned char __upper_letters[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	type __table;
	for (auto& __entry : __table.__data)
	  __entry = 127;
	for (int __i = 0; __i < 10; ++__i)
	  __table.__data['0' + __i] = __i;
	for (int __i = 0; __i < 26; ++__i)
	  {
	    __table.__data[__lower_letters[__i]] = 10 + __i;
	    __table.__data[__upper_letters[__i]] = 10 + __i;
	  }
	return __table;
      }

      // This initializer is made superficially dependent in order
      // to prevent the compiler from wastefully constructing the
      // table ahead of time when it's not needed.
      static constexpr type value = (_DecOnly, _S_make_table());
    };

#if ! __cpp_inline_variables
  template<bool _DecOnly>
    const typename __from_chars_alnum_to_val_table<_DecOnly>::type
      __from_chars_alnum_to_val_table<_DecOnly>::value;
#endif

  // If _DecOnly is true: if the character is a decimal digit, then
  // return its corresponding base-10 value, otherwise return a value >= 127.
  // If _DecOnly is false: if the character is an alphanumeric digit, then
  // return its corresponding base-36 value, otherwise return a value >= 127.
  template<bool _DecOnly = false>
    _GLIBCXX20_CONSTEXPR unsigned char
    __from_chars_alnum_to_val(unsigned char __c)
    {
      if _GLIBCXX17_CONSTEXPR (_DecOnly)
	return static_cast<unsigned char>(__c - '0');
      else
	return __from_chars_alnum_to_val_table<_DecOnly>::value.__data[__c];
    }

  /// std::from_chars implementation for integers in a power-of-two base.
  /// If _DecOnly is true, then we may assume __base is at most 8.
  template<bool _DecOnly, typename _Tp>
    _GLIBCXX23_CONSTEXPR bool
    __from_chars_pow2_base(const char*& __first, const char* __last, _Tp& __val,
			   int __base)
    {
      static_assert(is_integral<_Tp>::value, "implementation bug");
      static_assert(is_unsigned<_Tp>::value, "implementation bug");

      // __glibcxx_assert((__base & (__base - 1)) == 0);
      // __glibcxx_assert(_DecOnly ? __base <= 8 : __base <= 32);
      const int __log2_base = __countr_zero(unsigned(__base & 0x3f));

      const ptrdiff_t __len = __last - __first;
      ptrdiff_t __i = 0;
      while (__i < __len && __first[__i] == '0')
	++__i;
      const ptrdiff_t __leading_zeroes = __i;
      if (__i >= __len) [[__unlikely__]]
	{
	  __first += __i;
	  return true;
	}

      // Remember the leading significant digit value if necessary.
      unsigned char __leading_c = 0;
      if (__base != 2)
	{
	  __leading_c = __from_chars_alnum_to_val<_DecOnly>(__first[__i]);
	  // __glibcxx_assert(__leading_c != 0);
	  if (__leading_c >= __base) [[__unlikely__]]
	    {
	      __first += __i;
	      return true;
	    }
	  __val = __leading_c;
	  ++__i;
	}

      for (; __i < __len; ++__i)
	{
	  const unsigned char __c = __from_chars_alnum_to_val<_DecOnly>(__first[__i]);
	  if (__c >= __base)
	    break;
	  __val = (__val << __log2_base) | __c;
	}
      __first += __i;
      auto __significant_bits = (__i - __leading_zeroes) * __log2_base;
      if (__base != 2)
	// Compensate for a leading significant digit that didn't use all
	// of its available bits.
	__significant_bits -= __log2_base - __bit_width(__leading_c);
      // __glibcxx_assert(__significant_bits >= 0);
      return __significant_bits <= __gnu_cxx::__int_traits<_Tp>::__digits;
    }

  /// std::from_chars implementation for integers in any base.
  /// If _DecOnly is true, then we may assume __base is at most 10.
  template<bool _DecOnly, typename _Tp>
    constexpr bool
    __from_chars_alnum(const char*& __first, const char* __last, _Tp& __val,
		       int __base)
    {
      // __glibcxx_assert(_DecOnly ? __base <= 10 : __base <= 36);

      const int __bits_per_digit = __bit_width(unsigned(__base & 0x3f));
      int __unused_bits_lower_bound = __gnu_cxx::__int_traits<_Tp>::__digits;
      for (; __first != __last; ++__first)
	{
	  const unsigned char __c = __from_chars_alnum_to_val<_DecOnly>(*__first);
	  if (__c >= __base)
	    return true;

	  __unused_bits_lower_bound -= __bits_per_digit;
	  if (__unused_bits_lower_bound >= 0) [[__likely__]]
	    // We're definitely not going to overflow.
	    __val = __val * __base + __c;
	  else if (!__raise_and_add(__val, __base, __c)) [[__unlikely__]]
	    {
	      while (++__first != __last
		     && __from_chars_alnum_to_val<_DecOnly>(*__first) < __base)
		;
	      return false;
	    }
	}
      return true;
    }

} // namespace __detail

  /// std::from_chars for integral types.
  template<typename _Tp,
	   enable_if_t<__or_<__is_standard_integer<_Tp>,
			     is_same<char, remove_cv_t<_Tp>>>::value, int> = 0>
    _GLIBCXX23_CONSTEXPR from_chars_result
    from_chars(const char* __first, const char* __last, _Tp& __value,
	       int __base = 10)
    {
      __glibcxx_assert(2 <= __base && __base <= 36);

      from_chars_result __res{__first, {}};

      int __sign = 1;
      if _GLIBCXX17_CONSTEXPR (std::is_signed<_Tp>::value)
	if (__first != __last && *__first == '-')
	  {
	    __sign = -1;
	    ++__first;
	  }

      using _Up = __detail::__unsigned_least_t<_Tp>;
      _Up __val = 0;

      const auto __start = __first;
      bool __valid;
      if ((__base & (__base - 1)) == 0)
	{
	  if (__base <= 8)
	    __valid = __detail::__from_chars_pow2_base<true>(__first, __last, __val, __base);
	  else
	    __valid = __detail::__from_chars_pow2_base<false>(__first, __last, __val, __base);
	}
      else if (__base <= 10)
	__valid = __detail::__from_chars_alnum<true>(__first, __last, __val, __base);
      else
	__valid = __detail::__from_chars_alnum<false>(__first, __last, __val, __base);

      if (__builtin_expect(__first == __start, 0))
	__res.ec = errc::invalid_argument;
      else
	{
	  __res.ptr = __first;
	  if (!__valid)
	    __res.ec = errc::result_out_of_range;
	  else
	    {
	      if _GLIBCXX17_CONSTEXPR (std::is_signed<_Tp>::value)
		{
		  _Tp __tmp;
		  if (__builtin_mul_overflow(__val, __sign, &__tmp))
		    __res.ec = errc::result_out_of_range;
		  else
		    __value = __tmp;
		}
	      else
		{
		  if _GLIBCXX17_CONSTEXPR (__gnu_cxx::__int_traits<_Up>::__max
		      > __gnu_cxx::__int_traits<_Tp>::__max)
		    {
		      if (__val > __gnu_cxx::__int_traits<_Tp>::__max)
			__res.ec = errc::result_out_of_range;
		      else
			__value = __val;
		    }
		  else
		    __value = __val;
		}
	    }
	}
      return __res;
    }

  /// floating-point format for primitive numerical conversion
  enum class chars_format
  {
    scientific = 1, fixed = 2, hex = 4, general = fixed | scientific
  };

  [[nodiscard]]
  constexpr chars_format
  operator|(chars_format __lhs, chars_format __rhs) noexcept
  { return (chars_format)((unsigned)__lhs | (unsigned)__rhs); }

  [[nodiscard]]
  constexpr chars_format
  operator&(chars_format __lhs, chars_format __rhs) noexcept
  { return (chars_format)((unsigned)__lhs & (unsigned)__rhs); }

  [[nodiscard]]
  constexpr chars_format
  operator^(chars_format __lhs, chars_format __rhs) noexcept
  { return (chars_format)((unsigned)__lhs ^ (unsigned)__rhs); }

  [[nodiscard]]
  constexpr chars_format
  operator~(chars_format __fmt) noexcept
  { return (chars_format)~(unsigned)__fmt; }

  constexpr chars_format&
  operator|=(chars_format& __lhs, chars_format __rhs) noexcept
  { return __lhs = __lhs | __rhs; }

  constexpr chars_format&
  operator&=(chars_format& __lhs, chars_format __rhs) noexcept
  { return __lhs = __lhs & __rhs; }

  constexpr chars_format&
  operator^=(chars_format& __lhs, chars_format __rhs) noexcept
  { return __lhs = __lhs ^ __rhs; }

#if defined __cpp_lib_to_chars || _GLIBCXX_HAVE_USELOCALE
  from_chars_result
  from_chars(const char* __first, const char* __last, float& __value,
	     chars_format __fmt = chars_format::general) noexcept;

  from_chars_result
  from_chars(const char* __first, const char* __last, double& __value,
	     chars_format __fmt = chars_format::general) noexcept;

  from_chars_result
  from_chars(const char* __first, const char* __last, long double& __value,
	     chars_format __fmt = chars_format::general) noexcept;

  // Library routines for 16-bit extended floating point formats
  // using float as interchange format.
  from_chars_result
  __from_chars_float16_t(const char* __first, const char* __last,
			 float& __value,
			 chars_format __fmt = chars_format::general) noexcept;
  from_chars_result
  __from_chars_bfloat16_t(const char* __first, const char* __last,
			  float& __value,
			  chars_format __fmt = chars_format::general) noexcept;

#if defined(__STDCPP_FLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32) \
    && defined(__cpp_lib_to_chars)
  inline from_chars_result
  from_chars(const char* __first, const char* __last, _Float16& __value,
	     chars_format __fmt = chars_format::general) noexcept
  {
    float __val;
    from_chars_result __res
      = __from_chars_float16_t(__first, __last, __val, __fmt);
    if (__res.ec == errc{})
      __value = _Float16(__val);
    return __res;
  }
#endif

#if defined(__STDCPP_FLOAT32_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
  inline from_chars_result
  from_chars(const char* __first, const char* __last, _Float32& __value,
	     chars_format __fmt = chars_format::general) noexcept
  {
    float __val;
    from_chars_result __res = from_chars(__first, __last, __val, __fmt);
    if (__res.ec == errc{})
      __value = _Float32(__val);
    return __res;
  }
#endif

#if defined(__STDCPP_FLOAT64_T__) && defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
  inline from_chars_result
  from_chars(const char* __first, const char* __last, _Float64& __value,
	     chars_format __fmt = chars_format::general) noexcept
  {
    double __val;
    from_chars_result __res = from_chars(__first, __last, __val, __fmt);
    if (__res.ec == errc{})
      __value = _Float64(__val);
    return __res;
  }
#endif

#if defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128)
  inline from_chars_result
  from_chars(const char* __first, const char* __last, _Float128& __value,
	     chars_format __fmt = chars_format::general) noexcept
  {
    long double __val;
    from_chars_result __res = from_chars(__first, __last, __val, __fmt);
    if (__res.ec == errc{})
      __value = _Float128(__val);
    return __res;
  }
#elif defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_HAVE_FLOAT128_MATH)
#ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
  __extension__ from_chars_result
  from_chars(const char* __first, const char* __last, __ieee128& __value,
	     chars_format __fmt = chars_format::general) noexcept;

  inline from_chars_result
  from_chars(const char* __first, const char* __last, _Float128& __value,
	     chars_format __fmt = chars_format::general) noexcept
  {
    __extension__ __ieee128 __val;
    from_chars_result __res = from_chars(__first, __last, __val, __fmt);
    if (__res.ec == errc{})
      __value = _Float128(__val);
    return __res;
  }
#else
  from_chars_result
  from_chars(const char* __first, const char* __last, _Float128& __value,
	     chars_format __fmt = chars_format::general) noexcept;
#endif
#endif

#if defined(__STDCPP_BFLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32) \
    && defined(__cpp_lib_to_chars)
  inline from_chars_result
  from_chars(const char* __first, const char* __last,
	     __gnu_cxx::__bfloat16_t & __value,
	     chars_format __fmt = chars_format::general) noexcept
  {
    float __val;
    from_chars_result __res
      = __from_chars_bfloat16_t(__first, __last, __val, __fmt);
    if (__res.ec == errc{})
      __value = __gnu_cxx::__bfloat16_t(__val);
    return __res;
  }
#endif
#endif

#if defined __cpp_lib_to_chars
  // Floating-point std::to_chars

  // Overloads for float.
  to_chars_result to_chars(char* __first, char* __last, float __value) noexcept;
  to_chars_result to_chars(char* __first, char* __last, float __value,
			   chars_format __fmt) noexcept;
  to_chars_result to_chars(char* __first, char* __last, float __value,
			   chars_format __fmt, int __precision) noexcept;

  // Overloads for double.
  to_chars_result to_chars(char* __first, char* __last, double __value) noexcept;
  to_chars_result to_chars(char* __first, char* __last, double __value,
			   chars_format __fmt) noexcept;
  to_chars_result to_chars(char* __first, char* __last, double __value,
			   chars_format __fmt, int __precision) noexcept;

  // Overloads for long double.
  to_chars_result to_chars(char* __first, char* __last, long double __value)
    noexcept;
  to_chars_result to_chars(char* __first, char* __last, long double __value,
			   chars_format __fmt) noexcept;
  to_chars_result to_chars(char* __first, char* __last, long double __value,
			   chars_format __fmt, int __precision) noexcept;

  // Library routines for 16-bit extended floating point formats
  // using float as interchange format.
  to_chars_result __to_chars_float16_t(char* __first, char* __last,
				       float __value,
				       chars_format __fmt) noexcept;
  to_chars_result __to_chars_bfloat16_t(char* __first, char* __last,
					float __value,
					chars_format __fmt) noexcept;

#if defined(__STDCPP_FLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float16 __value) noexcept
  {
    return __to_chars_float16_t(__first, __last, float(__value),
				chars_format{});
  }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float16 __value,
	   chars_format __fmt) noexcept
  { return __to_chars_float16_t(__first, __last, float(__value), __fmt); }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float16 __value,
	   chars_format __fmt, int __precision) noexcept
  { return to_chars(__first, __last, float(__value), __fmt, __precision); }
#endif

#if defined(__STDCPP_FLOAT32_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float32 __value) noexcept
  { return to_chars(__first, __last, float(__value)); }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float32 __value,
	   chars_format __fmt) noexcept
  { return to_chars(__first, __last, float(__value), __fmt); }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float32 __value,
	   chars_format __fmt, int __precision) noexcept
  { return to_chars(__first, __last, float(__value), __fmt, __precision); }
#endif

#if defined(__STDCPP_FLOAT64_T__) && defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float64 __value) noexcept
  { return to_chars(__first, __last, double(__value)); }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float64 __value,
	   chars_format __fmt) noexcept
  { return to_chars(__first, __last, double(__value), __fmt); }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float64 __value,
	   chars_format __fmt, int __precision) noexcept
  { return to_chars(__first, __last, double(__value), __fmt, __precision); }
#endif

#if defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128)
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float128 __value) noexcept
  { return to_chars(__first, __last, static_cast<long double>(__value)); }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float128 __value,
	   chars_format __fmt) noexcept
  {
    return to_chars(__first, __last, static_cast<long double>(__value), __fmt);
  }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float128 __value,
	   chars_format __fmt, int __precision) noexcept
  {
    return to_chars(__first, __last, static_cast<long double>(__value), __fmt,
		    __precision);
  }
#elif defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_HAVE_FLOAT128_MATH)
#ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
  __extension__ to_chars_result
  to_chars(char* __first, char* __last, __float128 __value) noexcept;
  __extension__ to_chars_result
  to_chars(char* __first, char* __last, __float128 __value,
	   chars_format __fmt) noexcept;
  __extension__ to_chars_result
  to_chars(char* __first, char* __last, __float128 __value,
	   chars_format __fmt, int __precision) noexcept;

  inline to_chars_result
  to_chars(char* __first, char* __last, _Float128 __value) noexcept
  {
    return __extension__ to_chars(__first, __last,
				  static_cast<__float128>(__value));
  }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float128 __value,
	   chars_format __fmt) noexcept
  {

    return __extension__ to_chars(__first, __last,
				  static_cast<__float128>(__value), __fmt);
  }
  inline to_chars_result
  to_chars(char* __first, char* __last, _Float128 __value,
	   chars_format __fmt, int __precision) noexcept
  {

    return __extension__ to_chars(__first, __last,
				  static_cast<__float128>(__value), __fmt,
				  __precision);
  }
#else
  to_chars_result to_chars(char* __first, char* __last, _Float128 __value)
    noexcept;
  to_chars_result to_chars(char* __first, char* __last, _Float128 __value,
			   chars_format __fmt) noexcept;
  to_chars_result to_chars(char* __first, char* __last, _Float128 __value,
			   chars_format __fmt, int __precision) noexcept;
#endif
#endif

#if defined(__STDCPP_BFLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
  inline to_chars_result
  to_chars(char* __first, char* __last,
	   __gnu_cxx::__bfloat16_t __value) noexcept
  {
    return __to_chars_bfloat16_t(__first, __last, float(__value),
				 chars_format{});
  }
  inline to_chars_result
  to_chars(char* __first, char* __last, __gnu_cxx::__bfloat16_t __value,
	   chars_format __fmt) noexcept
  { return __to_chars_bfloat16_t(__first, __last, float(__value), __fmt); }
  inline to_chars_result
  to_chars(char* __first, char* __last, __gnu_cxx::__bfloat16_t __value,
	   chars_format __fmt, int __precision) noexcept
  { return to_chars(__first, __last, float(__value), __fmt, __precision); }
#endif
#endif

_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
#endif // C++14
#endif // _GLIBCXX_CHARCONV

Filemanager

Name Type Size Permission Actions
backward Folder 0755
bits Folder 0755
debug Folder 0755
decimal Folder 0755
experimental Folder 0755
ext Folder 0755
parallel Folder 0755
pstl Folder 0755
tr1 Folder 0755
tr2 Folder 0755
algorithm File 3.31 KB 0644
any File 18.71 KB 0644
array File 15.4 KB 0644
atomic File 51.16 KB 0644
barrier File 7.87 KB 0644
bit File 14 KB 0644
bitset File 49.19 KB 0644
cassert File 1.61 KB 0644
ccomplex File 1.3 KB 0644
cctype File 2.34 KB 0644
cerrno File 1.73 KB 0644
cfenv File 2 KB 0644
cfloat File 1.84 KB 0644
charconv File 29.13 KB 0644
chrono File 94.45 KB 0644
cinttypes File 2.09 KB 0644
ciso646 File 1.43 KB 0644
climits File 1.87 KB 0644
clocale File 1.86 KB 0644
cmath File 94.84 KB 0644
codecvt File 5.15 KB 0644
compare File 37.25 KB 0644
complex File 74.84 KB 0644
complex.h File 1.56 KB 0644
concepts File 12.72 KB 0644
condition_variable File 12.59 KB 0644
coroutine File 9.39 KB 0644
csetjmp File 1.9 KB 0644
csignal File 1.81 KB 0644
cstdalign File 1.37 KB 0644
cstdarg File 1.82 KB 0644
cstdbool File 1.37 KB 0644
cstddef File 6.54 KB 0644
cstdint File 3.75 KB 0644
cstdio File 4.33 KB 0644
cstdlib File 6.76 KB 0644
cstring File 3.17 KB 0644
ctgmath File 1.33 KB 0644
ctime File 2.24 KB 0644
cuchar File 2.84 KB 0644
cwchar File 6.39 KB 0644
cwctype File 2.73 KB 0644
cxxabi.h File 21.77 KB 0644
deque File 4.56 KB 0644
exception File 5.31 KB 0644
execution File 1.87 KB 0644
expected File 49.81 KB 0644
fenv.h File 1.96 KB 0644
filesystem File 1.72 KB 0644
format File 128.31 KB 0644
forward_list File 2.91 KB 0644
fstream File 41.58 KB 0644
functional File 47.31 KB 0644
future File 52.04 KB 0644
generator File 22.16 KB 0644
initializer_list File 2.93 KB 0644
iomanip File 16.4 KB 0644
ios File 1.67 KB 0644
iosfwd File 8.21 KB 0644
iostream File 3.02 KB 0644
istream File 35.62 KB 0644
iterator File 3.02 KB 0644
latch File 2.7 KB 0644
limits File 82.01 KB 0644
list File 3.86 KB 0644
locale File 1.5 KB 0644
map File 4.37 KB 0644
math.h File 4.47 KB 0644
memory File 5.26 KB 0644
memory_resource File 14.15 KB 0644
mutex File 26.99 KB 0644
new File 8.48 KB 0644
numbers File 6.93 KB 0644
numeric File 25.5 KB 0644
optional File 44.03 KB 0644
ostream File 30.54 KB 0644
print File 4.73 KB 0644
queue File 2.54 KB 0644
random File 1.63 KB 0644
ranges File 271.85 KB 0644
ratio File 22.26 KB 0644
regex File 3.16 KB 0644
scoped_allocator File 17.41 KB 0644
semaphore File 3.04 KB 0644
set File 4.16 KB 0644
shared_mutex File 24.6 KB 0644
source_location File 2.7 KB 0644
span File 14.12 KB 0644
spanstream File 12.2 KB 0644
sstream File 38.83 KB 0644
stack File 2.46 KB 0644
stacktrace File 21.21 KB 0644
stdatomic.h File 4.02 KB 0644
stdexcept File 9.65 KB 0644
stdfloat File 1.72 KB 0644
stdlib.h File 2.25 KB 0644
stop_token File 15.72 KB 0644
streambuf File 29.24 KB 0644
string File 4.23 KB 0644
string_view File 27.52 KB 0644
syncstream File 8.18 KB 0644
system_error File 17.96 KB 0644
text_encoding File 16.26 KB 0644
tgmath.h File 1.33 KB 0644
thread File 9.77 KB 0644
tuple File 99.71 KB 0644
type_traits File 118.17 KB 0644
typeindex File 3.43 KB 0644
typeinfo File 8.1 KB 0644
unordered_map File 3.69 KB 0644
unordered_set File 3.48 KB 0644
utility File 7.38 KB 0644
valarray File 40.2 KB 0644
variant File 64.81 KB 0644
vector File 4.98 KB 0644
version File 1.42 KB 0644
Filemanager