xref: /netbsd-src/external/gpl3/gcc.old/dist/libstdc++-v3/doc/html/manual/localization.html (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
136ac495dSmrg<?xml version="1.0" encoding="UTF-8" standalone="no"?>
236ac495dSmrg<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 8.  Localization</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II.  Standard Contents" /><link rel="prev" href="strings.html" title="Chapter 7.  Strings" /><link rel="next" href="facets.html" title="Facets" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 8. 
336ac495dSmrg  Localization
436ac495dSmrg
536ac495dSmrg</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><th width="60%" align="center">Part II. 
636ac495dSmrg    Standard Contents
736ac495dSmrg  </th><td width="20%" align="right"> <a accesskey="n" href="facets.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization"></a>Chapter 8. 
836ac495dSmrg  Localization
936ac495dSmrg  <a id="id-1.3.4.6.1.1.1" class="indexterm"></a>
1036ac495dSmrg</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl.spec">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.localization.locales"></a>Locales</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.locales.locale"></a>locale</h3></div></div></div><p>
1136ac495dSmrgDescribes the basic locale object, including nested
1236ac495dSmrgclasses id, facet, and the reference-counted implementation object,
1336ac495dSmrgclass _Impl.
1436ac495dSmrg</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.req"></a>Requirements</h4></div></div></div><p>
1536ac495dSmrgClass locale is non-templatized and has two distinct types nested
1636ac495dSmrginside of it:
1736ac495dSmrg</p><div class="blockquote"><blockquote class="blockquote"><p>
1836ac495dSmrg<span class="emphasis"><em>
1936ac495dSmrgclass facet
2036ac495dSmrg22.1.1.1.2 Class locale::facet
2136ac495dSmrg</em></span>
2236ac495dSmrg</p></blockquote></div><p>
2336ac495dSmrgFacets actually implement locale functionality. For instance, a facet
2436ac495dSmrgcalled numpunct is the data object that can be used to query for the
2536ac495dSmrgthousands separator in the locale.
2636ac495dSmrg</p><p>
2736ac495dSmrgLiterally, a facet is strictly defined:
2836ac495dSmrg</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
2936ac495dSmrg      Containing the following public data member:
3036ac495dSmrg    </p><p>
3136ac495dSmrg      <code class="code">static locale::id id;</code>
3236ac495dSmrg    </p></li><li class="listitem"><p>
3336ac495dSmrg      Derived from another facet:
3436ac495dSmrg    </p><p>
3536ac495dSmrg      <code class="code">class gnu_codecvt: public std::ctype&lt;user-defined-type&gt;</code>
3636ac495dSmrg    </p></li></ul></div><p>
3736ac495dSmrgOf interest in this class are the memory management options explicitly
3836ac495dSmrgspecified as an argument to facet's constructor. Each constructor of a
3936ac495dSmrgfacet class takes a std::size_t __refs argument: if __refs == 0, the
4036ac495dSmrgfacet is deleted when the locale containing it is destroyed. If __refs
4136ac495dSmrg== 1, the facet is not destroyed, even when it is no longer
4236ac495dSmrgreferenced.
4336ac495dSmrg</p><div class="blockquote"><blockquote class="blockquote"><p>
4436ac495dSmrg<span class="emphasis"><em>
4536ac495dSmrgclass id
4636ac495dSmrg22.1.1.1.3 - Class locale::id
4736ac495dSmrg</em></span>
4836ac495dSmrg</p></blockquote></div><p>
4936ac495dSmrgProvides an index for looking up specific facets.
5036ac495dSmrg</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.design"></a>Design</h4></div></div></div><p>
5136ac495dSmrgThe major design challenge is fitting an object-orientated and
5236ac495dSmrgnon-global locale design on top of POSIX and other relevant standards,
5336ac495dSmrgwhich include the Single Unix (nee X/Open.)
5436ac495dSmrg</p><p>
5536ac495dSmrgBecause C and earlier versions of POSIX fall down so completely,
5636ac495dSmrgportability is an issue.
5736ac495dSmrg</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="locale.impl.c"></a>Interacting with "C" locales</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
5836ac495dSmrg       <code class="code">locale -a</code> displays available locales.
5936ac495dSmrg     </p><div class="blockquote"><blockquote class="blockquote"><pre class="programlisting">
6036ac495dSmrgaf_ZA
6136ac495dSmrgar_AE
6236ac495dSmrgar_AE.utf8
6336ac495dSmrgar_BH
6436ac495dSmrgar_BH.utf8
6536ac495dSmrgar_DZ
6636ac495dSmrgar_DZ.utf8
6736ac495dSmrgar_EG
6836ac495dSmrgar_EG.utf8
6936ac495dSmrgar_IN
7036ac495dSmrgar_IQ
7136ac495dSmrgar_IQ.utf8
7236ac495dSmrgar_JO
7336ac495dSmrgar_JO.utf8
7436ac495dSmrgar_KW
7536ac495dSmrgar_KW.utf8
7636ac495dSmrgar_LB
7736ac495dSmrgar_LB.utf8
7836ac495dSmrgar_LY
7936ac495dSmrgar_LY.utf8
8036ac495dSmrgar_MA
8136ac495dSmrgar_MA.utf8
8236ac495dSmrgar_OM
8336ac495dSmrgar_OM.utf8
8436ac495dSmrgar_QA
8536ac495dSmrgar_QA.utf8
8636ac495dSmrgar_SA
8736ac495dSmrgar_SA.utf8
8836ac495dSmrgar_SD
8936ac495dSmrgar_SD.utf8
9036ac495dSmrgar_SY
9136ac495dSmrgar_SY.utf8
9236ac495dSmrgar_TN
9336ac495dSmrgar_TN.utf8
9436ac495dSmrgar_YE
9536ac495dSmrgar_YE.utf8
9636ac495dSmrgbe_BY
9736ac495dSmrgbe_BY.utf8
9836ac495dSmrgbg_BG
9936ac495dSmrgbg_BG.utf8
10036ac495dSmrgbr_FR
10136ac495dSmrgbs_BA
10236ac495dSmrgC
10336ac495dSmrgca_ES
10436ac495dSmrgca_ES@euro
10536ac495dSmrgca_ES.utf8
10636ac495dSmrgca_ES.utf8@euro
10736ac495dSmrgcs_CZ
10836ac495dSmrgcs_CZ.utf8
10936ac495dSmrgcy_GB
11036ac495dSmrgda_DK
11136ac495dSmrgda_DK.iso885915
11236ac495dSmrgda_DK.utf8
11336ac495dSmrgde_AT
11436ac495dSmrgde_AT@euro
11536ac495dSmrgde_AT.utf8
11636ac495dSmrgde_AT.utf8@euro
11736ac495dSmrgde_BE
11836ac495dSmrgde_BE@euro
11936ac495dSmrgde_BE.utf8
12036ac495dSmrgde_BE.utf8@euro
12136ac495dSmrgde_CH
12236ac495dSmrgde_CH.utf8
12336ac495dSmrgde_DE
12436ac495dSmrgde_DE@euro
12536ac495dSmrgde_DE.utf8
12636ac495dSmrgde_DE.utf8@euro
12736ac495dSmrgde_LU
12836ac495dSmrgde_LU@euro
12936ac495dSmrgde_LU.utf8
13036ac495dSmrgde_LU.utf8@euro
13136ac495dSmrgel_GR
13236ac495dSmrgel_GR.utf8
13336ac495dSmrgen_AU
13436ac495dSmrgen_AU.utf8
13536ac495dSmrgen_BW
13636ac495dSmrgen_BW.utf8
13736ac495dSmrgen_CA
13836ac495dSmrgen_CA.utf8
13936ac495dSmrgen_DK
14036ac495dSmrgen_DK.utf8
14136ac495dSmrgen_GB
14236ac495dSmrgen_GB.iso885915
14336ac495dSmrgen_GB.utf8
14436ac495dSmrgen_HK
14536ac495dSmrgen_HK.utf8
14636ac495dSmrgen_IE
14736ac495dSmrgen_IE@euro
14836ac495dSmrgen_IE.utf8
14936ac495dSmrgen_IE.utf8@euro
15036ac495dSmrgen_IN
15136ac495dSmrgen_NZ
15236ac495dSmrgen_NZ.utf8
15336ac495dSmrgen_PH
15436ac495dSmrgen_PH.utf8
15536ac495dSmrgen_SG
15636ac495dSmrgen_SG.utf8
15736ac495dSmrgen_US
15836ac495dSmrgen_US.iso885915
15936ac495dSmrgen_US.utf8
16036ac495dSmrgen_ZA
16136ac495dSmrgen_ZA.utf8
16236ac495dSmrgen_ZW
16336ac495dSmrgen_ZW.utf8
16436ac495dSmrges_AR
16536ac495dSmrges_AR.utf8
16636ac495dSmrges_BO
16736ac495dSmrges_BO.utf8
16836ac495dSmrges_CL
16936ac495dSmrges_CL.utf8
17036ac495dSmrges_CO
17136ac495dSmrges_CO.utf8
17236ac495dSmrges_CR
17336ac495dSmrges_CR.utf8
17436ac495dSmrges_DO
17536ac495dSmrges_DO.utf8
17636ac495dSmrges_EC
17736ac495dSmrges_EC.utf8
17836ac495dSmrges_ES
17936ac495dSmrges_ES@euro
18036ac495dSmrges_ES.utf8
18136ac495dSmrges_ES.utf8@euro
18236ac495dSmrges_GT
18336ac495dSmrges_GT.utf8
18436ac495dSmrges_HN
18536ac495dSmrges_HN.utf8
18636ac495dSmrges_MX
18736ac495dSmrges_MX.utf8
18836ac495dSmrges_NI
18936ac495dSmrges_NI.utf8
19036ac495dSmrges_PA
19136ac495dSmrges_PA.utf8
19236ac495dSmrges_PE
19336ac495dSmrges_PE.utf8
19436ac495dSmrges_PR
19536ac495dSmrges_PR.utf8
19636ac495dSmrges_PY
19736ac495dSmrges_PY.utf8
19836ac495dSmrges_SV
19936ac495dSmrges_SV.utf8
20036ac495dSmrges_US
20136ac495dSmrges_US.utf8
20236ac495dSmrges_UY
20336ac495dSmrges_UY.utf8
20436ac495dSmrges_VE
20536ac495dSmrges_VE.utf8
20636ac495dSmrget_EE
20736ac495dSmrget_EE.utf8
20836ac495dSmrgeu_ES
20936ac495dSmrgeu_ES@euro
21036ac495dSmrgeu_ES.utf8
21136ac495dSmrgeu_ES.utf8@euro
21236ac495dSmrgfa_IR
21336ac495dSmrgfi_FI
21436ac495dSmrgfi_FI@euro
21536ac495dSmrgfi_FI.utf8
21636ac495dSmrgfi_FI.utf8@euro
21736ac495dSmrgfo_FO
21836ac495dSmrgfo_FO.utf8
21936ac495dSmrgfr_BE
22036ac495dSmrgfr_BE@euro
22136ac495dSmrgfr_BE.utf8
22236ac495dSmrgfr_BE.utf8@euro
22336ac495dSmrgfr_CA
22436ac495dSmrgfr_CA.utf8
22536ac495dSmrgfr_CH
22636ac495dSmrgfr_CH.utf8
22736ac495dSmrgfr_FR
22836ac495dSmrgfr_FR@euro
22936ac495dSmrgfr_FR.utf8
23036ac495dSmrgfr_FR.utf8@euro
23136ac495dSmrgfr_LU
23236ac495dSmrgfr_LU@euro
23336ac495dSmrgfr_LU.utf8
23436ac495dSmrgfr_LU.utf8@euro
23536ac495dSmrgga_IE
23636ac495dSmrgga_IE@euro
23736ac495dSmrgga_IE.utf8
23836ac495dSmrgga_IE.utf8@euro
23936ac495dSmrggl_ES
24036ac495dSmrggl_ES@euro
24136ac495dSmrggl_ES.utf8
24236ac495dSmrggl_ES.utf8@euro
24336ac495dSmrggv_GB
24436ac495dSmrggv_GB.utf8
24536ac495dSmrghe_IL
24636ac495dSmrghe_IL.utf8
24736ac495dSmrghi_IN
24836ac495dSmrghr_HR
24936ac495dSmrghr_HR.utf8
25036ac495dSmrghu_HU
25136ac495dSmrghu_HU.utf8
25236ac495dSmrgid_ID
25336ac495dSmrgid_ID.utf8
25436ac495dSmrgis_IS
25536ac495dSmrgis_IS.utf8
25636ac495dSmrgit_CH
25736ac495dSmrgit_CH.utf8
25836ac495dSmrgit_IT
25936ac495dSmrgit_IT@euro
26036ac495dSmrgit_IT.utf8
26136ac495dSmrgit_IT.utf8@euro
26236ac495dSmrgiw_IL
26336ac495dSmrgiw_IL.utf8
26436ac495dSmrgja_JP.eucjp
26536ac495dSmrgja_JP.utf8
26636ac495dSmrgka_GE
26736ac495dSmrgkl_GL
26836ac495dSmrgkl_GL.utf8
26936ac495dSmrgko_KR.euckr
27036ac495dSmrgko_KR.utf8
27136ac495dSmrgkw_GB
27236ac495dSmrgkw_GB.utf8
27336ac495dSmrglt_LT
27436ac495dSmrglt_LT.utf8
27536ac495dSmrglv_LV
27636ac495dSmrglv_LV.utf8
27736ac495dSmrgmi_NZ
27836ac495dSmrgmk_MK
27936ac495dSmrgmk_MK.utf8
28036ac495dSmrgmr_IN
28136ac495dSmrgms_MY
28236ac495dSmrgms_MY.utf8
28336ac495dSmrgmt_MT
28436ac495dSmrgmt_MT.utf8
28536ac495dSmrgnl_BE
28636ac495dSmrgnl_BE@euro
28736ac495dSmrgnl_BE.utf8
28836ac495dSmrgnl_BE.utf8@euro
28936ac495dSmrgnl_NL
29036ac495dSmrgnl_NL@euro
29136ac495dSmrgnl_NL.utf8
29236ac495dSmrgnl_NL.utf8@euro
29336ac495dSmrgnn_NO
29436ac495dSmrgnn_NO.utf8
29536ac495dSmrgno_NO
29636ac495dSmrgno_NO.utf8
29736ac495dSmrgoc_FR
29836ac495dSmrgpl_PL
29936ac495dSmrgpl_PL.utf8
30036ac495dSmrgPOSIX
30136ac495dSmrgpt_BR
30236ac495dSmrgpt_BR.utf8
30336ac495dSmrgpt_PT
30436ac495dSmrgpt_PT@euro
30536ac495dSmrgpt_PT.utf8
30636ac495dSmrgpt_PT.utf8@euro
30736ac495dSmrgro_RO
30836ac495dSmrgro_RO.utf8
30936ac495dSmrgru_RU
31036ac495dSmrgru_RU.koi8r
31136ac495dSmrgru_RU.utf8
31236ac495dSmrgru_UA
31336ac495dSmrgru_UA.utf8
31436ac495dSmrgse_NO
31536ac495dSmrgsk_SK
31636ac495dSmrgsk_SK.utf8
31736ac495dSmrgsl_SI
31836ac495dSmrgsl_SI.utf8
31936ac495dSmrgsq_AL
32036ac495dSmrgsq_AL.utf8
32136ac495dSmrgsr_YU
32236ac495dSmrgsr_YU@cyrillic
32336ac495dSmrgsr_YU.utf8
32436ac495dSmrgsr_YU.utf8@cyrillic
32536ac495dSmrgsv_FI
32636ac495dSmrgsv_FI@euro
32736ac495dSmrgsv_FI.utf8
32836ac495dSmrgsv_FI.utf8@euro
32936ac495dSmrgsv_SE
33036ac495dSmrgsv_SE.iso885915
33136ac495dSmrgsv_SE.utf8
33236ac495dSmrgta_IN
33336ac495dSmrgte_IN
33436ac495dSmrgtg_TJ
33536ac495dSmrgth_TH
33636ac495dSmrgth_TH.utf8
33736ac495dSmrgtl_PH
33836ac495dSmrgtr_TR
33936ac495dSmrgtr_TR.utf8
34036ac495dSmrguk_UA
34136ac495dSmrguk_UA.utf8
34236ac495dSmrgur_PK
34336ac495dSmrguz_UZ
34436ac495dSmrgvi_VN
34536ac495dSmrgvi_VN.tcvn
34636ac495dSmrgwa_BE
34736ac495dSmrgwa_BE@euro
34836ac495dSmrgyi_US
34936ac495dSmrgzh_CN
35036ac495dSmrgzh_CN.gb18030
35136ac495dSmrgzh_CN.gbk
35236ac495dSmrgzh_CN.utf8
35336ac495dSmrgzh_HK
35436ac495dSmrgzh_HK.utf8
35536ac495dSmrgzh_TW
35636ac495dSmrgzh_TW.euctw
35736ac495dSmrgzh_TW.utf8
35836ac495dSmrg</pre></blockquote></div></li><li class="listitem"><p>
35936ac495dSmrg       <code class="code">`locale`</code> displays environmental variables that
36036ac495dSmrg       impact how locale("") will be deduced.
36136ac495dSmrg     </p><div class="blockquote"><blockquote class="blockquote"><pre class="programlisting">
36236ac495dSmrgLANG=en_US
36336ac495dSmrgLC_CTYPE="en_US"
36436ac495dSmrgLC_NUMERIC="en_US"
36536ac495dSmrgLC_TIME="en_US"
36636ac495dSmrgLC_COLLATE="en_US"
36736ac495dSmrgLC_MONETARY="en_US"
36836ac495dSmrgLC_MESSAGES="en_US"
36936ac495dSmrgLC_PAPER="en_US"
37036ac495dSmrgLC_NAME="en_US"
37136ac495dSmrgLC_ADDRESS="en_US"
37236ac495dSmrgLC_TELEPHONE="en_US"
37336ac495dSmrgLC_MEASUREMENT="en_US"
37436ac495dSmrgLC_IDENTIFICATION="en_US"
37536ac495dSmrgLC_ALL=
37636ac495dSmrg</pre></blockquote></div></li></ul></div><p>
37736ac495dSmrgFrom Josuttis, p. 697-698, which says, that "there is only *one*
37836ac495dSmrgrelation (of the C++ locale mechanism) to the C locale mechanism: the
37936ac495dSmrgglobal C locale is modified if a named C++ locale object is set as the
38036ac495dSmrgglobal locale" (emphasis Paolo), that is:
38136ac495dSmrg</p><pre class="programlisting">std::locale::global(std::locale(""));</pre><p>affects the C functions as if the following call was made:</p><pre class="programlisting">std::setlocale(LC_ALL, "");</pre><p>
38236ac495dSmrg  On the other hand, there is *no* vice versa, that is, calling
38336ac495dSmrg  setlocale has *no* whatsoever on the C++ locale mechanism, in
38436ac495dSmrg  particular on the working of locale(""), which constructs the locale
38536ac495dSmrg  object from the environment of the running program, that is, in
38636ac495dSmrg  practice, the set of LC_ALL, LANG, etc. variable of the shell.
38736ac495dSmrg</p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.future"></a>Future</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
38836ac495dSmrg       Locale initialization: at what point does _S_classic, _S_global
38936ac495dSmrg       get initialized? Can named locales assume this initialization
39036ac495dSmrg       has already taken place?
39136ac495dSmrg     </p></li><li class="listitem"><p>
39236ac495dSmrg       Document how named locales error check when filling data
39336ac495dSmrg       members. I.e., a fr_FR locale that doesn't have
39436ac495dSmrg       numpunct::truename(): does it use "true"? Or is it a blank
39536ac495dSmrg       string? What's the convention?
39636ac495dSmrg   </p></li><li class="listitem"><p>
39736ac495dSmrg       Explain how locale aliasing happens. When does "de_DE" use "de"
39836ac495dSmrg       information? What is the rule for locales composed of just an
39936ac495dSmrg       ISO language code (say, "de") and locales with both an ISO
40036ac495dSmrg       language code and ISO country code (say, "de_DE").
40136ac495dSmrg     </p></li><li class="listitem"><p>
40236ac495dSmrg       What should non-required facet instantiations do?  If the
40336ac495dSmrg       generic implementation is provided, then how to end-users
40436ac495dSmrg       provide specializations?
40536ac495dSmrg   </p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id-1.3.4.6.2.2.7.2"></a><p><span class="citetitle"><em class="citetitle">
40636ac495dSmrg      The GNU C Library
40736ac495dSmrg    </em>. </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">
40836ac495dSmrg      Chapters 6 Character Set Handling and 7 Locales and
40936ac495dSmrg      Internationalization
41036ac495dSmrg    . </span></p></div><div class="biblioentry"><a id="id-1.3.4.6.2.2.7.3"></a><p><span class="citetitle"><em class="citetitle">
41136ac495dSmrg      Correspondence
41236ac495dSmrg    </em>. </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="id-1.3.4.6.2.2.7.4"></a><p><span class="citetitle"><em class="citetitle">
41336ac495dSmrg      ISO/IEC 14882:1998 Programming languages - C++
41436ac495dSmrg    </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="id-1.3.4.6.2.2.7.5"></a><p><span class="citetitle"><em class="citetitle">
41536ac495dSmrg      ISO/IEC 9899:1999 Programming languages - C
41636ac495dSmrg    </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="id-1.3.4.6.2.2.7.6"></a><p><span class="title"><em>
417*8feb0f0bSmrg	<a class="link" href="https://pubs.opengroup.org/onlinepubs/9699919799/" target="_top">
41836ac495dSmrg      System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
41936ac495dSmrg	</a>
42036ac495dSmrg      </em>. </span><span class="copyright">Copyright © 2008
42136ac495dSmrg	The Open Group/The Institute of Electrical and Electronics
42236ac495dSmrg	Engineers, Inc.
42336ac495dSmrg      . </span></p></div><div class="biblioentry"><a id="id-1.3.4.6.2.2.7.7"></a><p><span class="citetitle"><em class="citetitle">
42436ac495dSmrg      The C++ Programming Language, Special Edition
42536ac495dSmrg    </em>. </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">
42636ac495dSmrg	Addison Wesley
42736ac495dSmrg      . </span></span></p></div><div class="biblioentry"><a id="id-1.3.4.6.2.2.7.8"></a><p><span class="citetitle"><em class="citetitle">
42836ac495dSmrg      Standard C++ IOStreams and Locales
42936ac495dSmrg    </em>. </span><span class="subtitle">
43036ac495dSmrg      Advanced Programmer's Guide and Reference
43136ac495dSmrg    . </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">
43236ac495dSmrg	Addison Wesley Longman
43336ac495dSmrg      . </span></span></p></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="std_contents.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="facets.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 7. 
43436ac495dSmrg  Strings
43536ac495dSmrg
43636ac495dSmrg </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Facets</td></tr></table></div></body></html>