]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/libstdc++-v3/contrib/libstdc++-v3-4.3.3/doc/html/manual/bk01pt06ch15.html
update
[l4.git] / l4 / pkg / libstdc++-v3 / contrib / libstdc++-v3-4.3.3 / doc / html / manual / bk01pt06ch15.html
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 15. Facets aka Categories</title><meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    " /><link rel="start" href="../spine.html" title="The GNU C++ Library Documentation" /><link rel="up" href="localization.html" title="Part VI. Localization" /><link rel="prev" href="bk01pt06ch14.html" title="Chapter 14. Locales" /><link rel="next" href="codecvt.html" title="codecvt" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15. Facets aka Categories</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt06ch14.html">Prev</a> </td><th width="60%" align="center">Part VI. Localization</th><td width="20%" align="right"> <a accesskey="n" href="codecvt.html">Next</a></td></tr></table><hr /></div><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="manual.localization.facet"></a>Chapter 15. Facets aka Categories</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="bk01pt06ch15.html#manual.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="sect2"><a href="bk01pt06ch15.html#facet.ctype.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="bk01pt06ch15.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="codecvt.html">codecvt</a></span></dt><dd><dl><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.design">Design</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.use">Use</a></span></dt><dt><span class="sect2"><a href="codecvt.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="sect1"><a href="messages.html">messages</a></span></dt><dd><dl><dt><span class="sect2"><a href="messages.html#facet.messages.req">Requirements</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.design">Design</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.impl">Implementation</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.use">Use</a></span></dt><dt><span class="sect2"><a href="messages.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.localization.facet.ctype"></a>ctype</h2></div></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.impl"></a>Implementation</h3></div></div></div><div class="sect3" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="id423514"></a>Specializations</h4></div></div></div><p>
4 For the required specialization codecvt&lt;wchar_t, char, mbstate_t&gt; ,
5 conversions are made between the internal character set (always UCS4
6 on GNU/Linux) and whatever the currently selected locale for the
7 LC_CTYPE category implements.
8 </p><p>
9 The two required specializations are implemented as follows:
10 </p><p>
11 <code class="code">
12 ctype&lt;char&gt;
13 </code>
14 </p><p>
15 This is simple specialization. Implementing this was a piece of cake.
16 </p><p>
17 <code class="code">
18 ctype&lt;wchar_t&gt;
19 </code>
20 </p><p>
21 This specialization, by specifying all the template parameters, pretty
22 much ties the hands of implementors. As such, the implementation is
23 straightforward, involving mcsrtombs for the conversions between char
24 to wchar_t and wcsrtombs for conversions between wchar_t and char.
25 </p><p>
26 Neither of these two required specializations deals with Unicode
27 characters.
28 </p></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.future"></a>Future</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>
29    How to deal with the global locale issue? 
30    </p></li><li><p> 
31    How to deal with different types than char, wchar_t? </p></li><li><p>
32    Overlap between codecvt/ctype: narrow/widen 
33    </p></li><li><p> 
34        Mask typedef in codecvt_base, argument types in codecvt.  what
35        is know about this type? 
36    </p></li><li><p> 
37    Why mask* argument in codecvt?
38    </p></li><li><p>
39        Can this be made (more) generic? is there a simple way to
40        straighten out the configure-time mess that is a by-product of
41        this class?  
42    </p></li><li><p> 
43        Get the ctype&lt;wchar_t&gt;::mask stuff under control. Need to
44        make some kind of static table, and not do lookup every time
45        somebody hits the do_is... functions. Too bad we can't just
46        redefine mask for ctype&lt;wchar_t&gt; 
47    </p></li><li><p> 
48        Rename abstract base class. See if just smash-overriding is a
49        better approach. Clarify, add sanity to naming.
50      </p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="facet.ctype.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id397038"></a><p><span class="title"><i>
51       The GNU C Library
52     </i>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6  Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry"><a id="id399816"></a><p><span class="title"><i>
53       Correspondence
54     </i>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="id419755"></a><p><span class="title"><i>
55       ISO/IEC 14882:1998 Programming languages - C++
56     </i>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id419773"></a><p><span class="title"><i>
57       ISO/IEC 9899:1999 Programming languages - C
58     </i>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="id397810"></a><p><span class="title"><i>
59       System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
60     </i>. </span><span class="copyright">Copyright © 1999 
61       The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span><span class="biblioid">
62       <a class="ulink" href="http://www.opennc.org/austin/docreg.html" target="_top">
63       </a>
64     . </span></p></div><div class="biblioentry"><a id="id397838"></a><p><span class="title"><i>
65       The C++ Programming Language, Special Edition
66     </i>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
67         Addison Wesley
68       . </span></span></p></div><div class="biblioentry"><a id="id362481"></a><p><span class="title"><i>
69       Standard C++ IOStreams and Locales
70     </i>. </span><span class="subtitle">
71       Advanced Programmer's Guide and Reference
72     . </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
73         Addison Wesley Longman
74       . </span></span></p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt06ch14.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="localization.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="codecvt.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 14. Locales </td><td width="20%" align="center"><a accesskey="h" href="../spine.html">Home</a></td><td width="40%" align="right" valign="top"> codecvt</td></tr></table></div></body></html>