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