ctype_base.h revision 43f272afd56a57640c62c952f9266478bacf0244
1951a39d68df598db08dfced8b4707755864a0492Ying Wang// Locale support -*- C++ -*- 2951a39d68df598db08dfced8b4707755864a0492Ying Wang 3951a39d68df598db08dfced8b4707755864a0492Ying Wang// Copyright (C) 2010 Free Software Foundation, Inc. 4951a39d68df598db08dfced8b4707755864a0492Ying Wang// 5951a39d68df598db08dfced8b4707755864a0492Ying Wang// This file is part of the GNU ISO C++ Library. This library is free 6951a39d68df598db08dfced8b4707755864a0492Ying Wang// software; you can redistribute it and/or modify it under the 7951a39d68df598db08dfced8b4707755864a0492Ying Wang// terms of the GNU General Public License as published by the 8951a39d68df598db08dfced8b4707755864a0492Ying Wang// Free Software Foundation; either version 3, or (at your option) 9951a39d68df598db08dfced8b4707755864a0492Ying Wang// any later version. 10951a39d68df598db08dfced8b4707755864a0492Ying Wang 11951a39d68df598db08dfced8b4707755864a0492Ying Wang// This library is distributed in the hope that it will be useful, 12951a39d68df598db08dfced8b4707755864a0492Ying Wang// but WITHOUT ANY WARRANTY; without even the implied warranty of 13951a39d68df598db08dfced8b4707755864a0492Ying Wang// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14951a39d68df598db08dfced8b4707755864a0492Ying Wang// GNU General Public License for more details. 15951a39d68df598db08dfced8b4707755864a0492Ying Wang 16951a39d68df598db08dfced8b4707755864a0492Ying Wang// Under Section 7 of GPL version 3, you are granted additional 17951a39d68df598db08dfced8b4707755864a0492Ying Wang// permissions described in the GCC Runtime Library Exception, version 18951a39d68df598db08dfced8b4707755864a0492Ying Wang// 3.1, as published by the Free Software Foundation. 19951a39d68df598db08dfced8b4707755864a0492Ying Wang 20951a39d68df598db08dfced8b4707755864a0492Ying Wang// You should have received a copy of the GNU General Public License and 21951a39d68df598db08dfced8b4707755864a0492Ying Wang// a copy of the GCC Runtime Library Exception along with this program; 22951a39d68df598db08dfced8b4707755864a0492Ying Wang// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23951a39d68df598db08dfced8b4707755864a0492Ying Wang// <http://www.gnu.org/licenses/>. 24951a39d68df598db08dfced8b4707755864a0492Ying Wang 25951a39d68df598db08dfced8b4707755864a0492Ying Wang// 26951a39d68df598db08dfced8b4707755864a0492Ying Wang// ISO C++ 14882: 22.1 Locales 27951a39d68df598db08dfced8b4707755864a0492Ying Wang// 28951a39d68df598db08dfced8b4707755864a0492Ying Wang 29951a39d68df598db08dfced8b4707755864a0492Ying Wang// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1 30951a39d68df598db08dfced8b4707755864a0492Ying Wang 31951a39d68df598db08dfced8b4707755864a0492Ying Wang// Support for Solaris 2.5.1 32951a39d68df598db08dfced8b4707755864a0492Ying Wang 3343f272afd56a57640c62c952f9266478bacf0244Andrew Hsiehnamespace std _GLIBCXX_VISIBILITY(default) 3443f272afd56a57640c62c952f9266478bacf0244Andrew Hsieh{ 3543f272afd56a57640c62c952f9266478bacf0244Andrew Hsieh_GLIBCXX_BEGIN_NAMESPACE_VERSION 36951a39d68df598db08dfced8b4707755864a0492Ying Wang 37951a39d68df598db08dfced8b4707755864a0492Ying Wang /// @brief Base class for ctype. 38951a39d68df598db08dfced8b4707755864a0492Ying Wang struct ctype_base 39951a39d68df598db08dfced8b4707755864a0492Ying Wang { 40951a39d68df598db08dfced8b4707755864a0492Ying Wang // Non-standard typedefs. 41951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef const int* __to_type; 42951a39d68df598db08dfced8b4707755864a0492Ying Wang 43951a39d68df598db08dfced8b4707755864a0492Ying Wang // NB: Offsets into ctype<char>::_M_table force a particular size 44951a39d68df598db08dfced8b4707755864a0492Ying Wang // on the mask type. Because of this, we don't use an enum. 45951a39d68df598db08dfced8b4707755864a0492Ying Wang typedef char mask; 46951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask upper = _U; 47951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask lower = _L; 48951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask alpha = _U | _L; 49951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask digit = _N; 50951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask xdigit = _X | _N; 51951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask space = _S; 52951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask print = _P | _U | _L | _N | _B; 53951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask graph = _P | _U | _L | _N; 54951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask cntrl = _C; 55951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask punct = _P; 56951a39d68df598db08dfced8b4707755864a0492Ying Wang static const mask alnum = _U | _L | _N; 57951a39d68df598db08dfced8b4707755864a0492Ying Wang }; 58951a39d68df598db08dfced8b4707755864a0492Ying Wang 5943f272afd56a57640c62c952f9266478bacf0244Andrew Hsieh_GLIBCXX_END_NAMESPACE_VERSION 6043f272afd56a57640c62c952f9266478bacf0244Andrew Hsieh} // namespace 61