29#ifndef _STRING_CONVERSIONS_H
30#define _STRING_CONVERSIONS_H 1
32#pragma GCC system_header
36#if __cplusplus < 201103L
48namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
50_GLIBCXX_BEGIN_NAMESPACE_VERSION
53 template<
typename _TRet,
typename _Ret = _TRet,
typename _CharT,
56 __stoa(_TRet (*__convf) (
const _CharT*, _CharT**, _Base...),
57 const char* __name,
const _CharT* __str, std::size_t* __idx,
65 _Save_errno() : _M_errno(errno) { errno = 0; }
66 ~_Save_errno() {
if (errno == 0) errno = _M_errno; }
77 return __val < _TRet(__numeric_traits<int>::__min)
78 || __val > _TRet(__numeric_traits<int>::__max);
82 const _TRet __tmp = __convf(__str, &__endptr,
__base...);
84 if (__endptr == __str)
85 std::__throw_invalid_argument(__name);
86 else if (errno == ERANGE
88 std::__throw_out_of_range(__name);
93 *__idx = __endptr - __str;
99 template<
typename _String,
typename _CharT =
typename _String::value_type>
101 __to_xstring(
int (*__convf) (_CharT*, std::size_t,
const _CharT*,
102 __builtin_va_list), std::size_t __n,
103 const _CharT* __fmt, ...)
107 _CharT* __s =
static_cast<_CharT*
>(__builtin_alloca(
sizeof(_CharT)
110 __builtin_va_list __args;
111 __builtin_va_start(__args, __fmt);
113 const int __len = __convf(__s, __n, __fmt, __args);
115 __builtin_va_end(__args);
117 return _String(__s, __s + __len);
120_GLIBCXX_END_NAMESPACE_VERSION
__bool_constant< true > true_type
The type used as a compile-time boolean with true value.
__bool_constant< false > false_type
The type used as a compile-time boolean with false value.
GNU extensions for public use.
constexpr _Iterator __base(_Iterator __it)