1228753Smm// Locale support -*- C++ -*- 2228753Smm 3228753Smm// Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc. 4228753Smm// 5228753Smm// This file is part of the GNU ISO C++ Library. This library is free 6228753Smm// software; you can redistribute it and/or modify it under the 7228753Smm// terms of the GNU General Public License as published by the 8228753Smm// Free Software Foundation; either version 2, or (at your option) 9228753Smm// any later version. 10228753Smm 11228753Smm// This library is distributed in the hope that it will be useful, 12228753Smm// but WITHOUT ANY WARRANTY; without even the implied warranty of 13228753Smm// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14228753Smm// GNU General Public License for more details. 15228753Smm 16228753Smm// You should have received a copy of the GNU General Public License along 17228753Smm// with this library; see the file COPYING. If not, write to the Free 18228753Smm// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 19228753Smm// USA. 20228753Smm 21228753Smm// As a special exception, you may use this file as part of a free software 22228753Smm// library without restriction. Specifically, if other files instantiate 23228753Smm// templates or use macros or inline functions from this file, or you compile 24228753Smm// this file and link it with other files to produce an executable, this 25228753Smm// file does not by itself cause the resulting executable to be covered by 26228753Smm// the GNU General Public License. This exception does not however 27228763Smm// invalidate any other reasons why the executable file might be covered by 28228753Smm// the GNU General Public License. 29228753Smm 30228753Smm// 31228753Smm// ISO C++ 14882: 22.1 Locales 32228753Smm// 33228753Smm 34228753Smm// Default information, may not be appropriate for specific host. 35228753Smm 36228753Smm_GLIBCXX_BEGIN_NAMESPACE(std) 37228753Smm 38228753Smm /// @brief Base class for ctype. 39228753Smm struct ctype_base 40228753Smm { 41228753Smm // Non-standard typedefs. 42228753Smm typedef const int* __to_type; 43228753Smm 44228753Smm // NB: Offsets into ctype<char>::_M_table force a particular size 45228753Smm // on the mask type. Because of this, we don't use an enum. 46228753Smm typedef unsigned int mask; 47228753Smm static const mask upper = 1 << 0; 48228753Smm static const mask lower = 1 << 1; 49228753Smm static const mask alpha = 1 << 2; 50228753Smm static const mask digit = 1 << 3; 51228753Smm static const mask xdigit = 1 << 4; 52228753Smm static const mask space = 1 << 5; 53228753Smm static const mask print = 1 << 6; 54228753Smm static const mask graph = (1 << 2) | (1 << 3) | (1 << 9); // alnum|punct 55228753Smm static const mask cntrl = 1 << 8; 56228753Smm static const mask punct = 1 << 9; 57228753Smm static const mask alnum = (1 << 2) | (1 << 3); // alpha|digit 58228753Smm }; 59228753Smm 60228753Smm_GLIBCXX_END_NAMESPACE 61228753Smm