32#ifndef _POD_CHAR_TRAITS_H
33#define _POD_CHAR_TRAITS_H 1
36#pragma GCC system_header
43namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
45_GLIBCXX_BEGIN_NAMESPACE_VERSION
52 template<
typename _Value,
typename _Int,
typename _St = std::mbstate_t>
55 typedef _Value value_type;
56 typedef _Int int_type;
57 typedef _St state_type;
66 char_type ret = {
static_cast<value_type
>(v) };
74 V2 ret = {
static_cast<V2
>(c.value) };
80 template<
typename _Value,
typename _Int,
typename _St>
84 {
return lhs.value == rhs.value; }
86 template<
typename _Value,
typename _Int,
typename _St>
88 operator<(
const character<_Value, _Int, _St>& lhs,
89 const character<_Value, _Int, _St>& rhs)
90 {
return lhs.value < rhs.value; }
92_GLIBCXX_END_NAMESPACE_VERSION
95namespace std _GLIBCXX_VISIBILITY(default)
97_GLIBCXX_BEGIN_NAMESPACE_VERSION
100 template<
typename _Value,
typename _Int,
typename _St>
104 typedef typename char_type::int_type int_type;
105 typedef typename char_type::state_type state_type;
115 {
return __c1 == __c2; }
119 {
return __c1 < __c2; }
124 for (
size_t __i = 0; __i < __n; ++__i)
126 return lt(
__s1[__i],
__s2[__i]) ? -1 : 1;
169 std::fill_n(
__s, __n, __a);
174 to_char_type(
const int_type& __i)
175 {
return char_type::template from(__i); }
182 eq_int_type(
const int_type&
__c1,
const int_type& __c2)
183 {
return __c1 == __c2; }
188 int_type __r = {
static_cast<typename __gnu_cxx::__conditional_type
189 <std::__is_integer<int_type>::__value,
190 int_type,
int>::__type>(-1) };
195 not_eof(
const int_type& __c)
196 {
return eq_int_type(__c, eof()) ? int_type() : __c; }
199_GLIBCXX_END_NAMESPACE_VERSION
ISO C++ entities toplevel namespace is std.
GNU extensions for public use.
Basis for explicit traits specializations.
A POD class that serves as a character abstraction class.