]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/libstdc++-v3/contrib/libstdc++-v3-4.7/doc/xml/manual/ctype.xml
update
[l4.git] / l4 / pkg / libstdc++-v3 / contrib / libstdc++-v3-4.7 / doc / xml / manual / ctype.xml
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"?>
4
5 <info><title>ctype</title>
6   <keywordset>
7     <keyword>
8       ISO C++
9     </keyword>
10     <keyword>
11       ctype
12     </keyword>
13   </keywordset>
14 </info>
15
16
17
18 <section xml:id="facet.ctype.impl"><info><title>Implementation</title></info>
19
20
21   <section><info><title>Specializations</title></info>
22     
23
24 <para>
25 For the required specialization codecvt&lt;wchar_t, char, mbstate_t&gt; ,
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.
29 </para>
30
31 <para>
32 The two required specializations are implemented as follows:
33 </para>
34
35 <para>
36 <code>
37 ctype&lt;char&gt;
38 </code>
39 </para>
40 <para>
41 This is simple specialization. Implementing this was a piece of cake.
42 </para>
43
44 <para>
45 <code>
46 ctype&lt;wchar_t&gt;
47 </code>
48 </para>
49 <para>
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.
54 </para>
55
56 <para>
57 Neither of these two required specializations deals with Unicode
58 characters.
59 </para>
60
61   </section>
62 </section>
63
64 <section xml:id="facet.ctype.future"><info><title>Future</title></info>
65
66
67
68 <itemizedlist>
69    <listitem>
70    <para>
71    How to deal with the global locale issue?
72    </para></listitem>
73
74    <listitem>
75    <para>
76    How to deal with different types than char, wchar_t? </para></listitem>
77
78    <listitem><para>
79    Overlap between codecvt/ctype: narrow/widen
80    </para></listitem>
81
82    <listitem>
83      <para>
84        Mask typedef in codecvt_base, argument types in codecvt.  what
85        is know about this type?
86    </para></listitem>
87
88    <listitem>
89    <para>
90    Why mask* argument in codecvt?
91    </para></listitem>
92
93    <listitem>
94      <para>
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
97        this class?
98    </para></listitem>
99
100    <listitem>
101      <para>
102        Get the ctype&lt;wchar_t&gt;::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&lt;wchar_t&gt;
106    </para></listitem>
107
108    <listitem>
109      <para>
110        Rename abstract base class. See if just smash-overriding is a
111        better approach. Clarify, add sanity to naming.
112      </para>
113    </listitem>
114
115 </itemizedlist>
116
117
118 </section>
119
120
121 <bibliography xml:id="facet.ctype.biblio"><info><title>Bibliography</title></info>
122
123
124   <biblioentry>
125     <citetitle>
126       The GNU C Library
127     </citetitle>
128     <author><personname><surname>McGrath</surname><firstname>Roland</firstname></personname></author>
129     <author><personname><surname>Drepper</surname><firstname>Ulrich</firstname></personname></author>
130     <copyright>
131       <year>2007</year>
132       <holder>FSF</holder>
133     </copyright>
134     <pagenums>Chapters 6  Character Set Handling and 7 Locales and Internationalization</pagenums>
135   </biblioentry>
136
137   <biblioentry>
138     <citetitle>
139       Correspondence
140     </citetitle>
141     <author><personname><surname>Drepper</surname><firstname>Ulrich</firstname></personname></author>
142     <copyright>
143       <year>2002</year>
144       <holder/>
145     </copyright>
146   </biblioentry>
147
148   <biblioentry>
149     <citetitle>
150       ISO/IEC 14882:1998 Programming languages - C++
151     </citetitle>
152     <copyright>
153       <year>1998</year>
154       <holder>ISO</holder>
155     </copyright>
156   </biblioentry>
157
158   <biblioentry>
159     <citetitle>
160       ISO/IEC 9899:1999 Programming languages - C
161     </citetitle>
162     <copyright>
163       <year>1999</year>
164       <holder>ISO</holder>
165     </copyright>
166   </biblioentry>
167
168   <biblioentry>
169       <title>
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)
173         </link>
174       </title>
175
176     <copyright>
177       <year>1999</year>
178       <holder>
179       The Open Group/The Institute of Electrical and Electronics Engineers, Inc.</holder>
180     </copyright>
181   </biblioentry>
182
183   <biblioentry>
184     <citetitle>
185       The C++ Programming Language, Special Edition
186     </citetitle>
187     <author><personname><surname>Stroustrup</surname><firstname>Bjarne</firstname></personname></author>
188     <copyright>
189       <year>2000</year>
190       <holder>Addison Wesley, Inc.</holder>
191     </copyright>
192     <pagenums>Appendix D</pagenums>
193     <publisher>
194       <publishername>
195         Addison Wesley
196       </publishername>
197     </publisher>
198   </biblioentry>
199
200   <biblioentry>
201     <citetitle>
202       Standard C++ IOStreams and Locales
203     </citetitle>
204     <subtitle>
205       Advanced Programmer's Guide and Reference
206     </subtitle>
207     <author><personname><surname>Langer</surname><firstname>Angelika</firstname></personname></author>
208     <author><personname><surname>Kreft</surname><firstname>Klaus</firstname></personname></author>
209     <copyright>
210       <year>2000</year>
211       <holder>Addison Wesley Longman, Inc.</holder>
212     </copyright>
213     <publisher>
214       <publishername>
215         Addison Wesley Longman
216       </publishername>
217     </publisher>
218   </biblioentry>
219
220 </bibliography>
221
222 </section>