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<user-defined-type></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>