29 #ifndef _STRING_CONVERSIONS_H 
   30 #define _STRING_CONVERSIONS_H 1 
   32 #pragma GCC system_header 
   34 #if __cplusplus < 201103L 
   46 namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
 
   48 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   51   template<
typename _TRet, 
typename _Ret = _TRet, 
typename _CharT,
 
   54     __stoa(_TRet (*__convf) (
const _CharT*, _CharT**, _Base...),
 
   55        const char* __name, 
const _CharT* __str, std::size_t* __idx,
 
   62       const _TRet __tmp = __convf(__str, &__endptr, 
__base...);
 
   64       if (__endptr == __str)
 
   65     std::__throw_invalid_argument(__name);
 
   66       else if (errno == ERANGE
 
   67            || (std::__are_same<_Ret, int>::__value
 
   68            && (__tmp < __numeric_traits<int>::__min
 
   69                || __tmp > __numeric_traits<int>::__max)))
 
   70     std::__throw_out_of_range(__name);
 
   75     *__idx = __endptr - __str;
 
   81   template<
typename _String, 
typename _CharT = 
typename _String::value_type>
 
   83     __to_xstring(
int (*__convf) (_CharT*, std::size_t, 
const _CharT*,
 
   84                  __builtin_va_list), std::size_t __n,
 
   85          const _CharT* __fmt, ...)
 
   89       _CharT* __s = 
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
 
   92       __builtin_va_list __args;
 
   93       __builtin_va_start(__args, __fmt);
 
   95       const int __len = __convf(__s, __n, __fmt, __args);
 
   97       __builtin_va_end(__args);
 
   99       return _String(__s, __s + __len);
 
  102 _GLIBCXX_END_NAMESPACE_VERSION
 
  107 #endif // _STRING_CONVERSIONS_H 
GNU extensions for public use. 
_Siter_base< _Iterator >::iterator_type __base(_Iterator __it)