1 <section xmlns="http://docbook.org/ns/docbook" version="5.0"
2 xml:id="std.localization.facet.ctype" xreflabel="ctype">
3 <?dbhtml filename="ctype.html"?>
5 <info><title>ctype</title>
18 <section xml:id="facet.ctype.impl"><info><title>Implementation</title></info>
21 <section><info><title>Specializations</title></info>
25 For the required specialization codecvt<wchar_t, char, mbstate_t> ,
26 conversions are made between the internal character set (always UCS4
27 on GNU/Linux) and whatever the currently selected locale for the
28 LC_CTYPE category implements.
32 The two required specializations are implemented as follows:
41 This is simple specialization. Implementing this was a piece of cake.
50 This specialization, by specifying all the template parameters, pretty
51 much ties the hands of implementors. As such, the implementation is
52 straightforward, involving mcsrtombs for the conversions between char
53 to wchar_t and wcsrtombs for conversions between wchar_t and char.
57 Neither of these two required specializations deals with Unicode
64 <section xml:id="facet.ctype.future"><info><title>Future</title></info>
71 How to deal with the global locale issue?
76 How to deal with different types than char, wchar_t? </para></listitem>
79 Overlap between codecvt/ctype: narrow/widen
84 Mask typedef in codecvt_base, argument types in codecvt. what
85 is know about this type?
90 Why mask* argument in codecvt?
95 Can this be made (more) generic? is there a simple way to
96 straighten out the configure-time mess that is a by-product of
102 Get the ctype<wchar_t>::mask stuff under control. Need to
103 make some kind of static table, and not do lookup every time
104 somebody hits the do_is... functions. Too bad we can't just
105 redefine mask for ctype<wchar_t>
110 Rename abstract base class. See if just smash-overriding is a
111 better approach. Clarify, add sanity to naming.
121 <bibliography xml:id="facet.ctype.biblio"><info><title>Bibliography</title></info>
128 <author><personname><surname>McGrath</surname><firstname>Roland</firstname></personname></author>
129 <author><personname><surname>Drepper</surname><firstname>Ulrich</firstname></personname></author>
134 <pagenums>Chapters 6 Character Set Handling and 7 Locales and Internationalization</pagenums>
141 <author><personname><surname>Drepper</surname><firstname>Ulrich</firstname></personname></author>
150 ISO/IEC 14882:1998 Programming languages - C++
160 ISO/IEC 9899:1999 Programming languages - C
170 <link xmlns:xlink="http://www.w3.org/1999/xlink"
171 xlink:href="http://www.unix.org/version3/ieee_std.html">
172 The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
179 The Open Group/The Institute of Electrical and Electronics Engineers, Inc.</holder>
185 The C++ Programming Language, Special Edition
187 <author><personname><surname>Stroustrup</surname><firstname>Bjarne</firstname></personname></author>
190 <holder>Addison Wesley, Inc.</holder>
192 <pagenums>Appendix D</pagenums>
202 Standard C++ IOStreams and Locales
205 Advanced Programmer's Guide and Reference
207 <author><personname><surname>Langer</surname><firstname>Angelika</firstname></personname></author>
208 <author><personname><surname>Kreft</surname><firstname>Klaus</firstname></personname></author>
211 <holder>Addison Wesley Longman, Inc.</holder>
215 Addison Wesley Longman