xref: /netbsd-src/external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/localization.html (revision fb8a8121f28072308659629b86cfb7c449bd93e1)
14fee23f9Smrg<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2d79abf08Smrg<!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. 
34fee23f9Smrg  Localization
44fee23f9Smrg
548fb7bfaSmrg</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><th width="60%" align="center">Part II. 
648fb7bfaSmrg    Standard Contents
748fb7bfaSmrg  </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. 
84fee23f9Smrg  Localization
94d5abbe8Smrg  <a id="id-1.3.4.6.1.1.1" class="indexterm"></a>
104d5abbe8Smrg</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>
1148fb7bfaSmrgDescribes the basic locale object, including nested
1248fb7bfaSmrgclasses id, facet, and the reference-counted implementation object,
1348fb7bfaSmrgclass _Impl.
1448fb7bfaSmrg</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.req"></a>Requirements</h4></div></div></div><p>
1548fb7bfaSmrgClass locale is non-templatized and has two distinct types nested
1648fb7bfaSmrginside of it:
1748fb7bfaSmrg</p><div class="blockquote"><blockquote class="blockquote"><p>
1848fb7bfaSmrg<span class="emphasis"><em>
1948fb7bfaSmrgclass facet
2048fb7bfaSmrg22.1.1.1.2 Class locale::facet
2148fb7bfaSmrg</em></span>
2248fb7bfaSmrg</p></blockquote></div><p>
2348fb7bfaSmrgFacets actually implement locale functionality. For instance, a facet
2448fb7bfaSmrgcalled numpunct is the data object that can be used to query for the
2548fb7bfaSmrgthousands separator in the locale.
2648fb7bfaSmrg</p><p>
2748fb7bfaSmrgLiterally, a facet is strictly defined:
2848fb7bfaSmrg</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
2948fb7bfaSmrg      Containing the following public data member:
3048fb7bfaSmrg    </p><p>
3148fb7bfaSmrg      <code class="code">static locale::id id;</code>
3248fb7bfaSmrg    </p></li><li class="listitem"><p>
3348fb7bfaSmrg      Derived from another facet:
3448fb7bfaSmrg    </p><p>
3548fb7bfaSmrg      <code class="code">class gnu_codecvt: public std::ctype&lt;user-defined-type&gt;</code>
3648fb7bfaSmrg    </p></li></ul></div><p>
3748fb7bfaSmrgOf interest in this class are the memory management options explicitly
3848fb7bfaSmrgspecified as an argument to facet's constructor. Each constructor of a
3948fb7bfaSmrgfacet class takes a std::size_t __refs argument: if __refs == 0, the
4048fb7bfaSmrgfacet is deleted when the locale containing it is destroyed. If __refs
4148fb7bfaSmrg== 1, the facet is not destroyed, even when it is no longer
4248fb7bfaSmrgreferenced.
4348fb7bfaSmrg</p><div class="blockquote"><blockquote class="blockquote"><p>
4448fb7bfaSmrg<span class="emphasis"><em>
4548fb7bfaSmrgclass id
4648fb7bfaSmrg22.1.1.1.3 - Class locale::id
4748fb7bfaSmrg</em></span>
4848fb7bfaSmrg</p></blockquote></div><p>
4948fb7bfaSmrgProvides an index for looking up specific facets.
5048fb7bfaSmrg</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>
5148fb7bfaSmrgThe major design challenge is fitting an object-orientated and
5248fb7bfaSmrgnon-global locale design on top of POSIX and other relevant standards,
5348fb7bfaSmrgwhich include the Single Unix (nee X/Open.)
5448fb7bfaSmrg</p><p>
5548fb7bfaSmrgBecause C and earlier versions of POSIX fall down so completely,
5648fb7bfaSmrgportability is an issue.
5748fb7bfaSmrg</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>
584d5abbe8Smrg       <code class="code">locale -a</code> displays available locales.
5948fb7bfaSmrg     </p><div class="blockquote"><blockquote class="blockquote"><pre class="programlisting">
6048fb7bfaSmrgaf_ZA
6148fb7bfaSmrgar_AE
6248fb7bfaSmrgar_AE.utf8
6348fb7bfaSmrgar_BH
6448fb7bfaSmrgar_BH.utf8
6548fb7bfaSmrgar_DZ
6648fb7bfaSmrgar_DZ.utf8
6748fb7bfaSmrgar_EG
6848fb7bfaSmrgar_EG.utf8
6948fb7bfaSmrgar_IN
7048fb7bfaSmrgar_IQ
7148fb7bfaSmrgar_IQ.utf8
7248fb7bfaSmrgar_JO
7348fb7bfaSmrgar_JO.utf8
7448fb7bfaSmrgar_KW
7548fb7bfaSmrgar_KW.utf8
7648fb7bfaSmrgar_LB
7748fb7bfaSmrgar_LB.utf8
7848fb7bfaSmrgar_LY
7948fb7bfaSmrgar_LY.utf8
8048fb7bfaSmrgar_MA
8148fb7bfaSmrgar_MA.utf8
8248fb7bfaSmrgar_OM
8348fb7bfaSmrgar_OM.utf8
8448fb7bfaSmrgar_QA
8548fb7bfaSmrgar_QA.utf8
8648fb7bfaSmrgar_SA
8748fb7bfaSmrgar_SA.utf8
8848fb7bfaSmrgar_SD
8948fb7bfaSmrgar_SD.utf8
9048fb7bfaSmrgar_SY
9148fb7bfaSmrgar_SY.utf8
9248fb7bfaSmrgar_TN
9348fb7bfaSmrgar_TN.utf8
9448fb7bfaSmrgar_YE
9548fb7bfaSmrgar_YE.utf8
9648fb7bfaSmrgbe_BY
9748fb7bfaSmrgbe_BY.utf8
9848fb7bfaSmrgbg_BG
9948fb7bfaSmrgbg_BG.utf8
10048fb7bfaSmrgbr_FR
10148fb7bfaSmrgbs_BA
10248fb7bfaSmrgC
10348fb7bfaSmrgca_ES
10448fb7bfaSmrgca_ES@euro
10548fb7bfaSmrgca_ES.utf8
10648fb7bfaSmrgca_ES.utf8@euro
10748fb7bfaSmrgcs_CZ
10848fb7bfaSmrgcs_CZ.utf8
10948fb7bfaSmrgcy_GB
11048fb7bfaSmrgda_DK
11148fb7bfaSmrgda_DK.iso885915
11248fb7bfaSmrgda_DK.utf8
11348fb7bfaSmrgde_AT
11448fb7bfaSmrgde_AT@euro
11548fb7bfaSmrgde_AT.utf8
11648fb7bfaSmrgde_AT.utf8@euro
11748fb7bfaSmrgde_BE
11848fb7bfaSmrgde_BE@euro
11948fb7bfaSmrgde_BE.utf8
12048fb7bfaSmrgde_BE.utf8@euro
12148fb7bfaSmrgde_CH
12248fb7bfaSmrgde_CH.utf8
12348fb7bfaSmrgde_DE
12448fb7bfaSmrgde_DE@euro
12548fb7bfaSmrgde_DE.utf8
12648fb7bfaSmrgde_DE.utf8@euro
12748fb7bfaSmrgde_LU
12848fb7bfaSmrgde_LU@euro
12948fb7bfaSmrgde_LU.utf8
13048fb7bfaSmrgde_LU.utf8@euro
13148fb7bfaSmrgel_GR
13248fb7bfaSmrgel_GR.utf8
13348fb7bfaSmrgen_AU
13448fb7bfaSmrgen_AU.utf8
13548fb7bfaSmrgen_BW
13648fb7bfaSmrgen_BW.utf8
13748fb7bfaSmrgen_CA
13848fb7bfaSmrgen_CA.utf8
13948fb7bfaSmrgen_DK
14048fb7bfaSmrgen_DK.utf8
14148fb7bfaSmrgen_GB
14248fb7bfaSmrgen_GB.iso885915
14348fb7bfaSmrgen_GB.utf8
14448fb7bfaSmrgen_HK
14548fb7bfaSmrgen_HK.utf8
14648fb7bfaSmrgen_IE
14748fb7bfaSmrgen_IE@euro
14848fb7bfaSmrgen_IE.utf8
14948fb7bfaSmrgen_IE.utf8@euro
15048fb7bfaSmrgen_IN
15148fb7bfaSmrgen_NZ
15248fb7bfaSmrgen_NZ.utf8
15348fb7bfaSmrgen_PH
15448fb7bfaSmrgen_PH.utf8
15548fb7bfaSmrgen_SG
15648fb7bfaSmrgen_SG.utf8
15748fb7bfaSmrgen_US
15848fb7bfaSmrgen_US.iso885915
15948fb7bfaSmrgen_US.utf8
16048fb7bfaSmrgen_ZA
16148fb7bfaSmrgen_ZA.utf8
16248fb7bfaSmrgen_ZW
16348fb7bfaSmrgen_ZW.utf8
16448fb7bfaSmrges_AR
16548fb7bfaSmrges_AR.utf8
16648fb7bfaSmrges_BO
16748fb7bfaSmrges_BO.utf8
16848fb7bfaSmrges_CL
16948fb7bfaSmrges_CL.utf8
17048fb7bfaSmrges_CO
17148fb7bfaSmrges_CO.utf8
17248fb7bfaSmrges_CR
17348fb7bfaSmrges_CR.utf8
17448fb7bfaSmrges_DO
17548fb7bfaSmrges_DO.utf8
17648fb7bfaSmrges_EC
17748fb7bfaSmrges_EC.utf8
17848fb7bfaSmrges_ES
17948fb7bfaSmrges_ES@euro
18048fb7bfaSmrges_ES.utf8
18148fb7bfaSmrges_ES.utf8@euro
18248fb7bfaSmrges_GT
18348fb7bfaSmrges_GT.utf8
18448fb7bfaSmrges_HN
18548fb7bfaSmrges_HN.utf8
18648fb7bfaSmrges_MX
18748fb7bfaSmrges_MX.utf8
18848fb7bfaSmrges_NI
18948fb7bfaSmrges_NI.utf8
19048fb7bfaSmrges_PA
19148fb7bfaSmrges_PA.utf8
19248fb7bfaSmrges_PE
19348fb7bfaSmrges_PE.utf8
19448fb7bfaSmrges_PR
19548fb7bfaSmrges_PR.utf8
19648fb7bfaSmrges_PY
19748fb7bfaSmrges_PY.utf8
19848fb7bfaSmrges_SV
19948fb7bfaSmrges_SV.utf8
20048fb7bfaSmrges_US
20148fb7bfaSmrges_US.utf8
20248fb7bfaSmrges_UY
20348fb7bfaSmrges_UY.utf8
20448fb7bfaSmrges_VE
20548fb7bfaSmrges_VE.utf8
20648fb7bfaSmrget_EE
20748fb7bfaSmrget_EE.utf8
20848fb7bfaSmrgeu_ES
20948fb7bfaSmrgeu_ES@euro
21048fb7bfaSmrgeu_ES.utf8
21148fb7bfaSmrgeu_ES.utf8@euro
21248fb7bfaSmrgfa_IR
21348fb7bfaSmrgfi_FI
21448fb7bfaSmrgfi_FI@euro
21548fb7bfaSmrgfi_FI.utf8
21648fb7bfaSmrgfi_FI.utf8@euro
21748fb7bfaSmrgfo_FO
21848fb7bfaSmrgfo_FO.utf8
21948fb7bfaSmrgfr_BE
22048fb7bfaSmrgfr_BE@euro
22148fb7bfaSmrgfr_BE.utf8
22248fb7bfaSmrgfr_BE.utf8@euro
22348fb7bfaSmrgfr_CA
22448fb7bfaSmrgfr_CA.utf8
22548fb7bfaSmrgfr_CH
22648fb7bfaSmrgfr_CH.utf8
22748fb7bfaSmrgfr_FR
22848fb7bfaSmrgfr_FR@euro
22948fb7bfaSmrgfr_FR.utf8
23048fb7bfaSmrgfr_FR.utf8@euro
23148fb7bfaSmrgfr_LU
23248fb7bfaSmrgfr_LU@euro
23348fb7bfaSmrgfr_LU.utf8
23448fb7bfaSmrgfr_LU.utf8@euro
23548fb7bfaSmrgga_IE
23648fb7bfaSmrgga_IE@euro
23748fb7bfaSmrgga_IE.utf8
23848fb7bfaSmrgga_IE.utf8@euro
23948fb7bfaSmrggl_ES
24048fb7bfaSmrggl_ES@euro
24148fb7bfaSmrggl_ES.utf8
24248fb7bfaSmrggl_ES.utf8@euro
24348fb7bfaSmrggv_GB
24448fb7bfaSmrggv_GB.utf8
24548fb7bfaSmrghe_IL
24648fb7bfaSmrghe_IL.utf8
24748fb7bfaSmrghi_IN
24848fb7bfaSmrghr_HR
24948fb7bfaSmrghr_HR.utf8
25048fb7bfaSmrghu_HU
25148fb7bfaSmrghu_HU.utf8
25248fb7bfaSmrgid_ID
25348fb7bfaSmrgid_ID.utf8
25448fb7bfaSmrgis_IS
25548fb7bfaSmrgis_IS.utf8
25648fb7bfaSmrgit_CH
25748fb7bfaSmrgit_CH.utf8
25848fb7bfaSmrgit_IT
25948fb7bfaSmrgit_IT@euro
26048fb7bfaSmrgit_IT.utf8
26148fb7bfaSmrgit_IT.utf8@euro
26248fb7bfaSmrgiw_IL
26348fb7bfaSmrgiw_IL.utf8
26448fb7bfaSmrgja_JP.eucjp
26548fb7bfaSmrgja_JP.utf8
26648fb7bfaSmrgka_GE
26748fb7bfaSmrgkl_GL
26848fb7bfaSmrgkl_GL.utf8
26948fb7bfaSmrgko_KR.euckr
27048fb7bfaSmrgko_KR.utf8
27148fb7bfaSmrgkw_GB
27248fb7bfaSmrgkw_GB.utf8
27348fb7bfaSmrglt_LT
27448fb7bfaSmrglt_LT.utf8
27548fb7bfaSmrglv_LV
27648fb7bfaSmrglv_LV.utf8
27748fb7bfaSmrgmi_NZ
27848fb7bfaSmrgmk_MK
27948fb7bfaSmrgmk_MK.utf8
28048fb7bfaSmrgmr_IN
28148fb7bfaSmrgms_MY
28248fb7bfaSmrgms_MY.utf8
28348fb7bfaSmrgmt_MT
28448fb7bfaSmrgmt_MT.utf8
28548fb7bfaSmrgnl_BE
28648fb7bfaSmrgnl_BE@euro
28748fb7bfaSmrgnl_BE.utf8
28848fb7bfaSmrgnl_BE.utf8@euro
28948fb7bfaSmrgnl_NL
29048fb7bfaSmrgnl_NL@euro
29148fb7bfaSmrgnl_NL.utf8
29248fb7bfaSmrgnl_NL.utf8@euro
29348fb7bfaSmrgnn_NO
29448fb7bfaSmrgnn_NO.utf8
29548fb7bfaSmrgno_NO
29648fb7bfaSmrgno_NO.utf8
29748fb7bfaSmrgoc_FR
29848fb7bfaSmrgpl_PL
29948fb7bfaSmrgpl_PL.utf8
30048fb7bfaSmrgPOSIX
30148fb7bfaSmrgpt_BR
30248fb7bfaSmrgpt_BR.utf8
30348fb7bfaSmrgpt_PT
30448fb7bfaSmrgpt_PT@euro
30548fb7bfaSmrgpt_PT.utf8
30648fb7bfaSmrgpt_PT.utf8@euro
30748fb7bfaSmrgro_RO
30848fb7bfaSmrgro_RO.utf8
30948fb7bfaSmrgru_RU
31048fb7bfaSmrgru_RU.koi8r
31148fb7bfaSmrgru_RU.utf8
31248fb7bfaSmrgru_UA
31348fb7bfaSmrgru_UA.utf8
31448fb7bfaSmrgse_NO
31548fb7bfaSmrgsk_SK
31648fb7bfaSmrgsk_SK.utf8
31748fb7bfaSmrgsl_SI
31848fb7bfaSmrgsl_SI.utf8
31948fb7bfaSmrgsq_AL
32048fb7bfaSmrgsq_AL.utf8
32148fb7bfaSmrgsr_YU
32248fb7bfaSmrgsr_YU@cyrillic
32348fb7bfaSmrgsr_YU.utf8
32448fb7bfaSmrgsr_YU.utf8@cyrillic
32548fb7bfaSmrgsv_FI
32648fb7bfaSmrgsv_FI@euro
32748fb7bfaSmrgsv_FI.utf8
32848fb7bfaSmrgsv_FI.utf8@euro
32948fb7bfaSmrgsv_SE
33048fb7bfaSmrgsv_SE.iso885915
33148fb7bfaSmrgsv_SE.utf8
33248fb7bfaSmrgta_IN
33348fb7bfaSmrgte_IN
33448fb7bfaSmrgtg_TJ
33548fb7bfaSmrgth_TH
33648fb7bfaSmrgth_TH.utf8
33748fb7bfaSmrgtl_PH
33848fb7bfaSmrgtr_TR
33948fb7bfaSmrgtr_TR.utf8
34048fb7bfaSmrguk_UA
34148fb7bfaSmrguk_UA.utf8
34248fb7bfaSmrgur_PK
34348fb7bfaSmrguz_UZ
34448fb7bfaSmrgvi_VN
34548fb7bfaSmrgvi_VN.tcvn
34648fb7bfaSmrgwa_BE
34748fb7bfaSmrgwa_BE@euro
34848fb7bfaSmrgyi_US
34948fb7bfaSmrgzh_CN
35048fb7bfaSmrgzh_CN.gb18030
35148fb7bfaSmrgzh_CN.gbk
35248fb7bfaSmrgzh_CN.utf8
35348fb7bfaSmrgzh_HK
35448fb7bfaSmrgzh_HK.utf8
35548fb7bfaSmrgzh_TW
35648fb7bfaSmrgzh_TW.euctw
35748fb7bfaSmrgzh_TW.utf8
35848fb7bfaSmrg</pre></blockquote></div></li><li class="listitem"><p>
35948fb7bfaSmrg       <code class="code">`locale`</code> displays environmental variables that
36048fb7bfaSmrg       impact how locale("") will be deduced.
36148fb7bfaSmrg     </p><div class="blockquote"><blockquote class="blockquote"><pre class="programlisting">
36248fb7bfaSmrgLANG=en_US
36348fb7bfaSmrgLC_CTYPE="en_US"
36448fb7bfaSmrgLC_NUMERIC="en_US"
36548fb7bfaSmrgLC_TIME="en_US"
36648fb7bfaSmrgLC_COLLATE="en_US"
36748fb7bfaSmrgLC_MONETARY="en_US"
36848fb7bfaSmrgLC_MESSAGES="en_US"
36948fb7bfaSmrgLC_PAPER="en_US"
37048fb7bfaSmrgLC_NAME="en_US"
37148fb7bfaSmrgLC_ADDRESS="en_US"
37248fb7bfaSmrgLC_TELEPHONE="en_US"
37348fb7bfaSmrgLC_MEASUREMENT="en_US"
37448fb7bfaSmrgLC_IDENTIFICATION="en_US"
37548fb7bfaSmrgLC_ALL=
37648fb7bfaSmrg</pre></blockquote></div></li></ul></div><p>
37748fb7bfaSmrgFrom Josuttis, p. 697-698, which says, that "there is only *one*
37848fb7bfaSmrgrelation (of the C++ locale mechanism) to the C locale mechanism: the
37948fb7bfaSmrgglobal C locale is modified if a named C++ locale object is set as the
38048fb7bfaSmrgglobal locale" (emphasis Paolo), that is:
38148fb7bfaSmrg</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>
38248fb7bfaSmrg  On the other hand, there is *no* vice versa, that is, calling
38348fb7bfaSmrg  setlocale has *no* whatsoever on the C++ locale mechanism, in
38448fb7bfaSmrg  particular on the working of locale(""), which constructs the locale
38548fb7bfaSmrg  object from the environment of the running program, that is, in
38648fb7bfaSmrg  practice, the set of LC_ALL, LANG, etc. variable of the shell.
38748fb7bfaSmrg</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>
38848fb7bfaSmrg       Locale initialization: at what point does _S_classic, _S_global
38948fb7bfaSmrg       get initialized? Can named locales assume this initialization
39048fb7bfaSmrg       has already taken place?
39148fb7bfaSmrg     </p></li><li class="listitem"><p>
39248fb7bfaSmrg       Document how named locales error check when filling data
39348fb7bfaSmrg       members. I.e., a fr_FR locale that doesn't have
39448fb7bfaSmrg       numpunct::truename(): does it use "true"? Or is it a blank
39548fb7bfaSmrg       string? What's the convention?
39648fb7bfaSmrg   </p></li><li class="listitem"><p>
39748fb7bfaSmrg       Explain how locale aliasing happens. When does "de_DE" use "de"
39848fb7bfaSmrg       information? What is the rule for locales composed of just an
39948fb7bfaSmrg       ISO language code (say, "de") and locales with both an ISO
40048fb7bfaSmrg       language code and ISO country code (say, "de_DE").
40148fb7bfaSmrg     </p></li><li class="listitem"><p>
40248fb7bfaSmrg       What should non-required facet instantiations do?  If the
40348fb7bfaSmrg       generic implementation is provided, then how to end-users
40448fb7bfaSmrg       provide specializations?
4054d5abbe8Smrg   </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">
40648fb7bfaSmrg      The GNU C Library
40748fb7bfaSmrg    </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">
40848fb7bfaSmrg      Chapters 6 Character Set Handling and 7 Locales and
40948fb7bfaSmrg      Internationalization
4104d5abbe8Smrg    . </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">
41148fb7bfaSmrg      Correspondence
4124d5abbe8Smrg    </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">
41348fb7bfaSmrg      ISO/IEC 14882:1998 Programming languages - C++
4144d5abbe8Smrg    </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">
41548fb7bfaSmrg      ISO/IEC 9899:1999 Programming languages - C
4164d5abbe8Smrg    </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*fb8a8121Smrg	<a class="link" href="https://pubs.opengroup.org/onlinepubs/9699919799/" target="_top">
41848fb7bfaSmrg      System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
41948fb7bfaSmrg	</a>
42048fb7bfaSmrg      </em>. </span><span class="copyright">Copyright © 2008
42148fb7bfaSmrg	The Open Group/The Institute of Electrical and Electronics
42248fb7bfaSmrg	Engineers, Inc.
4234d5abbe8Smrg      . </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">
42448fb7bfaSmrg      The C++ Programming Language, Special Edition
42548fb7bfaSmrg    </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">
42648fb7bfaSmrg	Addison Wesley
4274d5abbe8Smrg      . </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">
42848fb7bfaSmrg      Standard C++ IOStreams and Locales
42948fb7bfaSmrg    </em>. </span><span class="subtitle">
43048fb7bfaSmrg      Advanced Programmer's Guide and Reference
43148fb7bfaSmrg    . </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">
43248fb7bfaSmrg	Addison Wesley Longman
43348fb7bfaSmrg      . </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. 
43448fb7bfaSmrg  Strings
43548fb7bfaSmrg
43648fb7bfaSmrg </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>