locale revision 9720d5f59b9c1f5d1b9ecbc9173dbcb71bd557be
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/*
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Copyright (c) 1999
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Silicon Graphics Computer Systems, Inc.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Copyright (c) 1999
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Boris Fomitchev
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * This material is provided "as is", with absolutely no warranty expressed
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * or implied. Any use is at your own risk.
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Permission to use or copy this software for any purpose is hereby granted
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * without fee, provided the above notices are retained on all copies.
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Permission to modify the code and to distribute modified code is granted,
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * provided the above notices are retained, and a notice that the code was
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * modified is included with the above copyright notice.
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef _STLP_LOCALE
1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define _STLP_LOCALE
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Basic framework: class locale and class locale::facet
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef _STLP_OUTERMOST_HEADER_ID
24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#  define _STLP_OUTERMOST_HEADER_ID 0x1041
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#  include <stl/_prolog.h>
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef _STLP_PRAGMA_ONCE
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#  pragma once
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <stl/_ioserr.h>
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Individual facets
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef _STLP_INTERNAL_CTYPE_H
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#  include <stl/_ctype.h>
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef _STLP_INTERNAL_CODECVT_H
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#  include <stl/_codecvt.h>
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef _STLP_INTERNAL_COLLATE_H
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#  include <stl/_collate.h>
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef _STLP_INTERNAL_NUM_PUT_H
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#  include <stl/_num_put.h>
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef _STLP_INTERNAL_NUM_GET_H
52868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#  include <stl/_num_get.h>
53868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif
54868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
55868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// those never included separately anyway
56868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include <stl/_monetary.h>
57868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include <stl/_time_facets.h>
58868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include <stl/_messages_facets.h>
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// some stuff for streambuf iterators ended up defined there
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Strictly speaking, _istream.h portion is only required for <iterator>, but it may break too many
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// programs if we omit it
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef _STLP_ISTREAM_H
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#  include <stl/_istream.h>
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Convenience interfaces
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef isspace
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef isprint
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef iscntrl
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef isupper
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef islower
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef isalpha
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef isdigit
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef ispunct
762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef isxdigit
77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#undef isalnum
78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#undef isgraph
792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef toupper
802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#undef tolower
812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)_STLP_BEGIN_NAMESPACE
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline bool isspace (_CharT c, const locale& loc)
8690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::space, c); }
87eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
88eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochtemplate <class _CharT>
8990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)inline bool isprint (_CharT c, const locale& loc)
90c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::print, c); }
912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline bool iscntrl (_CharT c, const locale& loc)
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::cntrl, c); }
952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline bool isupper (_CharT c, const locale& loc)
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::upper, c); }
992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline bool islower (_CharT c, const locale& loc)
1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::lower, c); }
1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline bool isalpha (_CharT c, const locale& loc)
1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::alpha, c); }
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline bool isdigit (_CharT c, const locale& loc)
110868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::digit, c); }
111868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline bool ispunct (_CharT c, const locale& loc)
114868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::punct, c); }
115868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
116868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)template <class _CharT>
117868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)inline bool isxdigit (_CharT c, const locale& loc)
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::xdigit, c); }
1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline bool isalnum (_CharT c, const locale& loc)
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::alnum, c); }
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline bool isgraph (_CharT c, const locale& loc)
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::graph, c); }
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline _CharT toupper(_CharT c, const locale& loc)
1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).toupper(c); }
1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template <class _CharT>
1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)inline _CharT tolower(_CharT c, const locale& loc)
1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ return (use_facet<ctype<_CharT> >(loc)).tolower(c); }
1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)_STLP_END_NAMESPACE
137eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
138eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#if (_STLP_OUTERMOST_HEADER_ID == 0x1041)
139eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#  include <stl/_epilog.h>
1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#  undef _STLP_OUTERMOST_HEADER_ID
1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* _STLP_LOCALE */
1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Local Variables:
1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// mode:C++
1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// End:
1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)