1951a39d68df598db08dfced8b4707755864a0492Ying Wang/* 2951a39d68df598db08dfced8b4707755864a0492Ying Wang * Copyright (c) 1999 3951a39d68df598db08dfced8b4707755864a0492Ying Wang * Silicon Graphics Computer Systems, Inc. 4951a39d68df598db08dfced8b4707755864a0492Ying Wang * 5951a39d68df598db08dfced8b4707755864a0492Ying Wang * Copyright (c) 1999 6951a39d68df598db08dfced8b4707755864a0492Ying Wang * Boris Fomitchev 7951a39d68df598db08dfced8b4707755864a0492Ying Wang * 8951a39d68df598db08dfced8b4707755864a0492Ying Wang * This material is provided "as is", with absolutely no warranty expressed 9951a39d68df598db08dfced8b4707755864a0492Ying Wang * or implied. Any use is at your own risk. 10951a39d68df598db08dfced8b4707755864a0492Ying Wang * 11951a39d68df598db08dfced8b4707755864a0492Ying Wang * Permission to use or copy this software for any purpose is hereby granted 12951a39d68df598db08dfced8b4707755864a0492Ying Wang * without fee, provided the above notices are retained on all copies. 13951a39d68df598db08dfced8b4707755864a0492Ying Wang * Permission to modify the code and to distribute modified code is granted, 14951a39d68df598db08dfced8b4707755864a0492Ying Wang * provided the above notices are retained, and a notice that the code was 15951a39d68df598db08dfced8b4707755864a0492Ying Wang * modified is included with the above copyright notice. 16951a39d68df598db08dfced8b4707755864a0492Ying Wang * 17951a39d68df598db08dfced8b4707755864a0492Ying Wang */ 18951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _STLP_LOCALE 19951a39d68df598db08dfced8b4707755864a0492Ying Wang 20951a39d68df598db08dfced8b4707755864a0492Ying Wang// Basic framework: class locale and class locale::facet 21951a39d68df598db08dfced8b4707755864a0492Ying Wang 22951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _STLP_OUTERMOST_HEADER_ID 23951a39d68df598db08dfced8b4707755864a0492Ying Wang# define _STLP_OUTERMOST_HEADER_ID 0x1041 24951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_prolog.h> 25951a39d68df598db08dfced8b4707755864a0492Ying Wang# define _STLP_LOCALE 26951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 27951a39d68df598db08dfced8b4707755864a0492Ying Wang 28951a39d68df598db08dfced8b4707755864a0492Ying Wang#if (_STLP_OUTERMOST_HEADER_ID == 0x1041) && \ 29951a39d68df598db08dfced8b4707755864a0492Ying Wang !(defined (_STLP_NO_IOSTREAMS) && defined (_STLP_IMPORT_VENDOR_STD)) 30951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_ioserr.h> 31951a39d68df598db08dfced8b4707755864a0492Ying Wang 32951a39d68df598db08dfced8b4707755864a0492Ying Wang// Individual facets 33951a39d68df598db08dfced8b4707755864a0492Ying Wang# ifndef _STLP_INTERNAL_CTYPE_H 34951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_ctype.h> 35951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 36951a39d68df598db08dfced8b4707755864a0492Ying Wang 37951a39d68df598db08dfced8b4707755864a0492Ying Wang# ifndef _STLP_INTERNAL_CODECVT_H 38951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_codecvt.h> 39951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 40951a39d68df598db08dfced8b4707755864a0492Ying Wang 41951a39d68df598db08dfced8b4707755864a0492Ying Wang# ifndef _STLP_INTERNAL_COLLATE_H 42951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_collate.h> 43951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 44951a39d68df598db08dfced8b4707755864a0492Ying Wang 45951a39d68df598db08dfced8b4707755864a0492Ying Wang# ifndef _STLP_INTERNAL_NUM_PUT_H 46951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_num_put.h> 47951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 48951a39d68df598db08dfced8b4707755864a0492Ying Wang 49951a39d68df598db08dfced8b4707755864a0492Ying Wang# ifndef _STLP_INTERNAL_NUM_GET_H 50951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_num_get.h> 51951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 52951a39d68df598db08dfced8b4707755864a0492Ying Wang 53951a39d68df598db08dfced8b4707755864a0492Ying Wang// those never included separately anyway 54951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_monetary.h> 55951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_time_facets.h> 56951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_messages_facets.h> 57951a39d68df598db08dfced8b4707755864a0492Ying Wang 58951a39d68df598db08dfced8b4707755864a0492Ying Wang// some stuff for streambuf iterators ended up defined there 59951a39d68df598db08dfced8b4707755864a0492Ying Wang// Strictly speaking, _istream.h portion is only required for <iterator>, but it may break too many 60951a39d68df598db08dfced8b4707755864a0492Ying Wang// programs if we omit it 61951a39d68df598db08dfced8b4707755864a0492Ying Wang# ifndef _STLP_ISTREAM_H 62951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_istream.h> 63951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 64951a39d68df598db08dfced8b4707755864a0492Ying Wang 65951a39d68df598db08dfced8b4707755864a0492Ying Wang// Convenience interfaces 66951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef isspace 67951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef isprint 68951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef iscntrl 69951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef isupper 70951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef islower 71951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef isalpha 72951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef isdigit 73951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef ispunct 74951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef isxdigit 75951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef isalnum 76951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef isgraph 77951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef toupper 78951a39d68df598db08dfced8b4707755864a0492Ying Wang#undef tolower 79951a39d68df598db08dfced8b4707755864a0492Ying Wang 80951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_BEGIN_NAMESPACE 81951a39d68df598db08dfced8b4707755864a0492Ying Wang 82951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 83951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool isspace (_CharT c, const locale& loc) 84951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::space, c); } 85951a39d68df598db08dfced8b4707755864a0492Ying Wang 86951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 87951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool isprint (_CharT c, const locale& loc) 88951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::print, c); } 89951a39d68df598db08dfced8b4707755864a0492Ying Wang 90951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 91951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool iscntrl (_CharT c, const locale& loc) 92951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::cntrl, c); } 93951a39d68df598db08dfced8b4707755864a0492Ying Wang 94951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 95951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool isupper (_CharT c, const locale& loc) 96951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::upper, c); } 97951a39d68df598db08dfced8b4707755864a0492Ying Wang 98951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 99951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool islower (_CharT c, const locale& loc) 100951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::lower, c); } 101951a39d68df598db08dfced8b4707755864a0492Ying Wang 102951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 103951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool isalpha (_CharT c, const locale& loc) 104951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::alpha, c); } 105951a39d68df598db08dfced8b4707755864a0492Ying Wang 106951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 107951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool isdigit (_CharT c, const locale& loc) 108951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::digit, c); } 109951a39d68df598db08dfced8b4707755864a0492Ying Wang 110951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 111951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool ispunct (_CharT c, const locale& loc) 112951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::punct, c); } 113951a39d68df598db08dfced8b4707755864a0492Ying Wang 114951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 115951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool isxdigit (_CharT c, const locale& loc) 116951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::xdigit, c); } 117951a39d68df598db08dfced8b4707755864a0492Ying Wang 118951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 119951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool isalnum (_CharT c, const locale& loc) 120951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::alnum, c); } 121951a39d68df598db08dfced8b4707755864a0492Ying Wang 122951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 123951a39d68df598db08dfced8b4707755864a0492Ying Wanginline bool isgraph (_CharT c, const locale& loc) 124951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::graph, c); } 125951a39d68df598db08dfced8b4707755864a0492Ying Wang 126951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 127951a39d68df598db08dfced8b4707755864a0492Ying Wanginline _CharT toupper(_CharT c, const locale& loc) 128951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).toupper(c); } 129951a39d68df598db08dfced8b4707755864a0492Ying Wang 130951a39d68df598db08dfced8b4707755864a0492Ying Wangtemplate <class _CharT> 131951a39d68df598db08dfced8b4707755864a0492Ying Wanginline _CharT tolower(_CharT c, const locale& loc) 132951a39d68df598db08dfced8b4707755864a0492Ying Wang{ return (use_facet<ctype<_CharT> >(loc)).tolower(c); } 133951a39d68df598db08dfced8b4707755864a0492Ying Wang 134951a39d68df598db08dfced8b4707755864a0492Ying Wang_STLP_END_NAMESPACE 135951a39d68df598db08dfced8b4707755864a0492Ying Wang 136951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 137951a39d68df598db08dfced8b4707755864a0492Ying Wang 138951a39d68df598db08dfced8b4707755864a0492Ying Wang#if (_STLP_OUTERMOST_HEADER_ID != 0x1041) || defined (_STLP_IMPORT_VENDOR_STD) 139951a39d68df598db08dfced8b4707755864a0492Ying Wang# if defined (_STLP_HAS_INCLUDE_NEXT) 140951a39d68df598db08dfced8b4707755864a0492Ying Wang# include_next <locale> 141951a39d68df598db08dfced8b4707755864a0492Ying Wang# else 142951a39d68df598db08dfced8b4707755864a0492Ying Wang# include _STLP_NATIVE_HEADER(locale) 143951a39d68df598db08dfced8b4707755864a0492Ying Wang# endif 144951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 145951a39d68df598db08dfced8b4707755864a0492Ying Wang 146951a39d68df598db08dfced8b4707755864a0492Ying Wang#if (_STLP_OUTERMOST_HEADER_ID == 0x1041) 147951a39d68df598db08dfced8b4707755864a0492Ying Wang# include <stl/_epilog.h> 148951a39d68df598db08dfced8b4707755864a0492Ying Wang# undef _STLP_OUTERMOST_HEADER_ID 149951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 150951a39d68df598db08dfced8b4707755864a0492Ying Wang 151951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif /* _STLP_LOCALE */ 152951a39d68df598db08dfced8b4707755864a0492Ying Wang 153951a39d68df598db08dfced8b4707755864a0492Ying Wang 154951a39d68df598db08dfced8b4707755864a0492Ying Wang// Local Variables: 155951a39d68df598db08dfced8b4707755864a0492Ying Wang// mode:C++ 156951a39d68df598db08dfced8b4707755864a0492Ying Wang// End: 157