220 20845 <CAB+4KHJkhXwKYSrkB7ADSZ7yR=VD9nQSf6RdqJqV=O2TNp6qiA@mail.gmail.com> article
Path: news.gmane.org!not-for-mail
From: Andrew Tomazos <andrewtomazos@gmail.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Re: Rough Draft Proposal of Interpolated String Literals
Date: Sat, 26 Sep 2015 23:09:41 +0200
Lines: 317
Approved: news@gmane.org
Message-ID: <CAB+4KHJkhXwKYSrkB7ADSZ7yR=VD9nQSf6RdqJqV=O2TNp6qiA@mail.gmail.com>
References: <CAB+4KHKxwEPXSFScU-FjeUL=yQFZWGfm6uk5fbh1+9bfScL_2Q@mail.gmail.com>
	<mtn6lu$3mr$1@ger.gmane.org>
	<043C43B5-72C9-4136-8D2F-2A3D745B2975@gmail.com>
	<CAB+4KHKX2yxfKi0PCO6=J6wSOt5LA6KAL6kcR=BAW9Mc13mRDQ@mail.gmail.com>
	<mtnit7$b0d$1@ger.gmane.org>
	<CAB+4KHJDhLghSzrAn18oU=SmmfSHS4pSUZOdd9FFuci78_R73Q@mail.gmail.com>
	<CAOHCbivoSL15s3V+VDN9FY7VuFW053DvEFY-BDtMpnuehtJ0vw@mail.gmail.com>
	<CAB+4KHJY2QzVj+m=Eg+yixcyGDr6KdB0Ped1WH6CCjZ1b3sD3g@mail.gmail.com>
	<6e2f4cfa-92d7-49e3-ad1a-5b0e0bb803b9@isocpp.org>
	<c1d5b27d-e85f-4803-8fc0-f1f1515e5179@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary=047d7b874e50fb31230520ace18a
X-Trace: ger.gmane.org 1443301796 24254 80.91.229.3 (26 Sep 2015 21:09:56 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Sat, 26 Sep 2015 21:09:56 +0000 (UTC)
To: "std-proposals@isocpp.org" <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBD5KHQXXWYPRBFMTTSYAKGQENGVVGBQ@isocpp.org Sat Sep 26 23:09:56 2015
Return-path: <std-proposals+bncBD5KHQXXWYPRBFMTTSYAKGQENGVVGBQ@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-wi0-f197.google.com ([209.85.212.197])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBD5KHQXXWYPRBFMTTSYAKGQENGVVGBQ@isocpp.org>)
	id 1Zfwj1-0000R6-8u
	for gclcip-std-proposals@m.gmane.org; Sat, 26 Sep 2015 23:09:43 +0200
Original-Received: by wicgb1 with SMTP id gb1sf22784716wic.3
        for <gclcip-std-proposals@m.gmane.org>; Sat, 26 Sep 2015 14:09:42 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:mime-version:in-reply-to:references:date
         :message-id:subject:from:to:content-type:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=id9MJWZEQ5qgM12P0Oap6IZnjM0UVblOOHolS+G3p0I=;
        b=frio8SmlOeZFp10YcfRsIebFNc7dHUzlass8Mp0WtUpTAbp+JdiFKvqsEveKpJh/3S
         0ZMzhbsF1cSWogDVeQHGqQABD658AD8rNim9vIBONoly0qKu0WeLQ6T9O5SbFxnnklvZ
         edTMoGt8A1FMrpTBHlJTa+M6uE9TJt3+dg1DU+WWHdwCVrR9vr3oN75nW/SGUxGVLSgV
         B5531F7EB4Bk2oGR/jpC9pQmtd1Kk24Hh6iSNhEmXJdpF+0GQeWO7s2qrjQJL3675g/E
         eBJzmVZaMezkj/sKszqYCZXfC/E1ICYTiA62x+fqYSI9hr57RgeK5X9m15+kKIN9g37X
         3PUA==
X-Gm-Message-State: ALoCoQn5J/GG07diyE1U4lFheEmzelrsb57hQyhBShDLQwMB7ZFo8Om+MnbtkA5l1QYpT6n1Txj1
X-Received: by 10.112.125.104 with SMTP id mp8mr2009185lbb.20.1443301782519;
        Sat, 26 Sep 2015 14:09:42 -0700 (PDT)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.180.35.34 with SMTP id e2ls311062wij.34.canary; Sat, 26 Sep
 2015 14:09:41 -0700 (PDT)
X-Received: by 10.194.103.103 with SMTP id fv7mr15776839wjb.152.1443301781529;
        Sat, 26 Sep 2015 14:09:41 -0700 (PDT)
Original-Received: from mail-wi0-x22c.google.com (mail-wi0-x22c.google.com. [2a00:1450:400c:c05::22c])
        by mx.google.com with ESMTPS id ar8si12161213wic.37.2015.09.26.14.09.41
        for <std-proposals@isocpp.org>
        (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sat, 26 Sep 2015 14:09:41 -0700 (PDT)
Received-SPF: pass (google.com: domain of andrewtomazos@gmail.com designates 2a00:1450:400c:c05::22c as permitted sender) client-ip=2a00:1450:400c:c05::22c;
Original-Received: by wicge5 with SMTP id ge5so60089268wic.0
        for <std-proposals@isocpp.org>; Sat, 26 Sep 2015 14:09:41 -0700 (PDT)
X-Received: by 10.195.11.3 with SMTP id ee3mr13084956wjd.89.1443301781350;
 Sat, 26 Sep 2015 14:09:41 -0700 (PDT)
Original-Received: by 10.28.73.137 with HTTP; Sat, 26 Sep 2015 14:09:41 -0700 (PDT)
In-Reply-To: <c1d5b27d-e85f-4803-8fc0-f1f1515e5179@isocpp.org>
X-Original-Sender: andrewtomazos@gmail.com
X-Original-Authentication-Results: mx.google.com;       spf=pass (google.com:
 domain of andrewtomazos@gmail.com designates 2a00:1450:400c:c05::22c as
 permitted sender) smtp.mailfrom=andrewtomazos@gmail.com;       dkim=pass
 header.i=@gmail.com;       dmarc=pass (p=NONE dis=NONE) header.from=gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Spam-Checked-In-Group: std-proposals@isocpp.org
X-Google-Group-Id: 399137483710
List-Post: <http://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <http://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <http://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:20845
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/20845>

--047d7b874e50fb31230520ace18a
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Sat, Sep 26, 2015 at 4:34 PM, Bengt Gustafsson <
bengt.gustafsson@beamways.com> wrote:

> In addition: By providing the formatting as part of the string rather tha=
n
> the embedded expressions translation gets a chance to change the formatti=
ng
> details. Using functions like octal(x) prevents this from being done
> without changing the source code.
>

Interesting thought, but I don't think this comes up.  It is my
understanding that translation sometimes reorders the embedded expressions,
but does not change their content or formatting.


>
> Den tisdag 22 september 2015 kl. 09:18:19 UTC+2 skrev Bengt Gustafsson:
>>
>> Ok, I was unclear there. The reason for the separate function name was t=
o
>> be able to send the formatting string to it. You can't do that to a
>> operator.
>>
>> Obviously formatting information must be cryptic (printf) or verbose
>> (cout), we can't have neither. My idea was more towards cryptic of cours=
e,
>> but it does not need to be as cryptic as printf...
>>
>> The idea of destroying the flow of reading you created by introducing F"=
"
>> in the first place by putting the formatting afterwards seems really
>> awkward to me. Then I like the idea of octal(x) or hex(x) better althoug=
h I
>> wonder how it would scale to
>> multiple formatting commands. Also the std namespace gets a lot of new
>> names which could be used better, and some we would use like precision a=
re
>> already used by ostream, aren't they? Or can they be reused maybe?
>>
>> To preserve performance these functions would have to return some
>> descriptor object which I think is Tony's intention.
>>
>> Personally I'm more for cryptic than verbose now that we have to choose.
>> We have all toiled to learn the strange details and shortcomings of the
>> printf formatting, by thinking a little before designing a new terse syn=
tax
>> I think we can do much better. Here is a starting point from one project=
 of
>> mine:
>>
>> // d<decimals> Number of decimals for floating point numbers.
>> // p<precision> Precision for floating or int numbers.
>> // w<width> Min width in characters. Value is left aligned.
>> // r<width> Min width in characters. Value is right aligned.
>> // c<width> Min width in characters. Value is centered.
>> // z<width> Min width in characters. Value is right aligned and padded
>> with zeros on the left.
>> // t<sep> Use <sep> (one character) as the thousand separator, inserted
>> every third digit in front of the decimal char.
>> // ; Use decimal char from locale for floating point numbers.
>> // . Use dot as decimal char.
>> // , Use comma as decimal char.
>> // m<maxwidth> Max field width. I.e. width is treated as a minimum width
>> instead of a fixed width. m without a number is treated as an infinite
>> maximum width.
>> // f Prefer normal float formatting.
>> // e Force e format.
>> // a Show All decimals. This forces trailing zeros to be added until the
>> decimals or precision of a number is satisfied.
>>
>>
>>
>> Den m=C3=A5ndag 21 september 2015 kl. 21:08:22 UTC+2 skrev Andrew Tomazo=
s:
>>>
>>>
>>>
>>> On Mon, Sep 21, 2015 at 6:11 PM, Tony V E <tvan...@gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Sun, Sep 20, 2015 at 10:55 PM, Andrew Tomazos <andrew...@gmail.com>
>>>> wrote:
>>>>
>>>>> OK, here is what I have got for formatting:
>>>>>
>>>>> Each embedded expression in an interpolated string literal, may
>>>>> optionally have a positive integer associated with. To make such an
>>>>> association, the index is placed between the introducer and the embed=
ded
>>>>> expression, and separated from the embedded expression by a colon:
>>>>>
>>>>>   F"$ The register is $reg in decimal, $1:reg in hex, and $2:reg in
>>>>> octal." {std::hex, std::oct}
>>>>>
>>>>
>>>>
>>>> F"$ The register is $reg in decimal, $hex(reg) in hex, and $octal(reg)
>>>> in octal."
>>>>
>>>> where hex() and octal() are normal functions (either returning string
>>>> or some magic like a pair(format, value).
>>>> ?
>>>>
>>>
>>> Assuming the existence of such functions you could write:
>>>
>>> F"$ The register is $reg in decimal, ${hex(reg)} in hex, and
>>> ${octal(reg)} in octal."
>>>
>>> and this would work as proposed, however when the format specifiers get
>>> longer and include precision, padding, showbase, etc, etc - their verbo=
sity
>>> begins to obfuscate the expression that they appertain to, hence why I
>>> propose to provide a mechanism to index them as auxillary expressions a=
nd
>>> place them at the back (like footnotes).
>>>
>>> Also note they can repeat so:
>>>
>>>     std::cout << F"$ The registers are ($spi, $pc) in decimal, ($1:spi,
>>> $1:pc) in hex, and ($2:spi, $2:pc) in octal." {std::hex, std::oct};
>>>
>>> So the formatting information can be shared amongst multiple embedded
>>> expressions.  It is easy to see how this is useful.
>>>
>>> There is also a performance issue with having the formatting inline as
>>> you suggest.  A function hex that takes a string and returns a string w=
ould
>>> perform a heap allocation of the hex string and then as a second step
>>> interpolate it into the interpolated string.  By having the formatting
>>> separate this enables iostreams (or other interpolated string consuming
>>> libraries) to stream the data directly to hex, without the intermediate
>>> value.  This is the same concept as iostreams.
>>>
>>> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> Visit this group at
> http://groups.google.com/a/isocpp.org/group/std-proposals/.
>

--=20

---=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

--047d7b874e50fb31230520ace18a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On S=
at, Sep 26, 2015 at 4:34 PM, Bengt Gustafsson <span dir=3D"ltr">&lt;<a href=
=3D"mailto:bengt.gustafsson@beamways.com" target=3D"_blank">bengt.gustafsso=
n@beamways.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div=
 dir=3D"ltr">In addition: By providing the formatting as part of the string=
 rather than the embedded expressions translation gets a chance to change t=
he formatting details. Using functions like octal(x) prevents this from bei=
ng done without changing the source code.</div></blockquote><div><br></div>=
<div>Interesting thought, but I don&#39;t think this comes up.=C2=A0 It is =
my understanding that translation sometimes reorders the embedded expressio=
ns, but does not change their content or formatting.</div><div>=C2=A0</div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><div class=3D"h5"><div=
><br>Den tisdag 22 september 2015 kl. 09:18:19 UTC+2 skrev Bengt Gustafsson=
:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;bord=
er-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Ok, I was unclear=
 there. The reason for the separate function name was to be able to send th=
e formatting string to it. You can&#39;t do that to a operator.<div><br></d=
iv><div>Obviously formatting information must be cryptic (printf) or verbos=
e (cout), we can&#39;t have neither. My idea was more towards cryptic of co=
urse, but it does not need to be as cryptic as printf...</div><div><br></di=
v><div>The idea of destroying the flow of reading you created by introducin=
g F&quot;&quot; in the first place by putting the formatting afterwards see=
ms really awkward to me. Then I like the idea of octal(x) or hex(x) better =
although I wonder how it would scale to</div><div>multiple formatting comma=
nds. Also the std namespace gets a lot of new names which could be used bet=
ter, and some we would use like precision are already used by ostream, aren=
&#39;t they? Or can they be reused maybe?</div><div><br></div><div>To prese=
rve performance these functions would have to return some descriptor object=
 which I think is Tony&#39;s intention.</div><div><br></div><div>Personally=
 I&#39;m more for cryptic than verbose now that we have to choose. We have =
all toiled to learn the strange details and shortcomings of the printf form=
atting, by thinking a little before designing a new terse syntax I think we=
 can do much better. Here is a starting point from one project of mine:</di=
v><div><br></div><div><div><span style=3D"white-space:pre-wrap">		</span>//=
 d&lt;decimals&gt;<span style=3D"white-space:pre-wrap">			</span>Number of =
decimals for floating point numbers.</div><div><span style=3D"white-space:p=
re-wrap">		</span>// p&lt;precision&gt;<span style=3D"white-space:pre-wrap"=
>			</span>Precision for floating or int numbers.</div><div><span style=3D"=
white-space:pre-wrap">		</span>// w&lt;width&gt;<span style=3D"white-space:=
pre-wrap">				</span>Min width in characters. Value is left aligned.</div><=
div><span style=3D"white-space:pre-wrap">		</span>// r&lt;width&gt;<span st=
yle=3D"white-space:pre-wrap">				</span>Min width in characters. Value is r=
ight aligned.</div><div><span style=3D"white-space:pre-wrap">		</span>// c&=
lt;width&gt;<span style=3D"white-space:pre-wrap">				</span>Min width in ch=
aracters. Value is centered.</div><div><span style=3D"white-space:pre-wrap"=
>		</span>// z&lt;width&gt;<span style=3D"white-space:pre-wrap">				</span>=
Min width in characters. Value is right aligned and padded with zeros on th=
e left.</div><div><span style=3D"white-space:pre-wrap">		</span>// t&lt;sep=
&gt;<span style=3D"white-space:pre-wrap">				</span>Use &lt;sep&gt; (one ch=
aracter) as the thousand separator, inserted every third digit in front of =
the decimal char.</div><div><span style=3D"white-space:pre-wrap">		</span>/=
/ ;<span style=3D"white-space:pre-wrap">					</span>Use decimal char from l=
ocale for floating point numbers.</div><div><span style=3D"white-space:pre-=
wrap">		</span>// .<span style=3D"white-space:pre-wrap">					</span>Use dot=
 as decimal char.</div><div><span style=3D"white-space:pre-wrap">		</span>/=
/ ,<span style=3D"white-space:pre-wrap">					</span>Use comma as decimal ch=
ar.</div><div><span style=3D"white-space:pre-wrap">		</span>// m&lt;maxwidt=
h&gt;<span style=3D"white-space:pre-wrap">			</span>Max field width. I.e. w=
idth is treated as a minimum width instead of a fixed width. m without a nu=
mber is treated as an infinite maximum width.</div><div><span style=3D"whit=
e-space:pre-wrap">		</span>// f<span style=3D"white-space:pre-wrap">					</=
span>Prefer normal float formatting.</div><div><span style=3D"white-space:p=
re-wrap">		</span>// e<span style=3D"white-space:pre-wrap">					</span>Forc=
e e format.</div><div><span style=3D"white-space:pre-wrap">		</span>// a<sp=
an style=3D"white-space:pre-wrap">					</span>Show All decimals. This force=
s trailing zeros to be added until the decimals or precision of a number is=
 satisfied.</div><div><br></div></div><div><br></div><div><br>Den m=C3=A5nd=
ag 21 september 2015 kl. 21:08:22 UTC+2 skrev Andrew Tomazos:<blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #cc=
c solid;padding-left:1ex"><div dir=3D"ltr"><br><div><br><div class=3D"gmail=
_quote">On Mon, Sep 21, 2015 at 6:11 PM, Tony V E <span dir=3D"ltr">&lt;<a =
rel=3D"nofollow">tvan...@gmail.com</a>&gt;</span> wrote:<br><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;=
border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex=
"><div dir=3D"ltr"><br><div><br><div class=3D"gmail_quote"><span>On Sun, Se=
p 20, 2015 at 10:55 PM, Andrew Tomazos <span dir=3D"ltr">&lt;<a rel=3D"nofo=
llow">andrew...@gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gma=
il_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-le=
ft-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div di=
r=3D"ltr">OK, here is what I have got for formatting:<div><br></div><div>Ea=
ch embedded expression in an interpolated string literal, may optionally ha=
ve a positive integer associated with. To make such an association, the ind=
ex is placed between the introducer and the embedded expression, and separa=
ted from the embedded expression by a colon:</div><div><br></div><div>=C2=
=A0 F&quot;$ The register is $reg in decimal, $1:reg in hex, and $2:reg in =
octal.&quot; {std::hex, std::oct}</div></div></blockquote></span><div><br><=
br>F&quot;$ The register is $reg in decimal, $hex(reg) in hex, and $octal(r=
eg) in octal.&quot;<br><br></div><div>where hex() and octal() are normal fu=
nctions (either returning string or some magic like a pair(format, value).<=
br>?<br></div><div></div></div></div></div></blockquote></div><br></div><di=
v>Assuming the existence of such functions you could write:</div><div><br><=
/div><div>F&quot;$ The register is $reg in decimal, ${hex(reg)} in hex, and=
 ${octal(reg)} in octal.&quot;<br></div><div><br></div><div>and this would =
work as proposed, however when the format specifiers get longer and include=
 precision, padding, showbase, etc, etc - their verbosity begins to obfusca=
te the expression that they appertain to, hence why I propose to provide a =
mechanism to index them as auxillary expressions and place them at the back=
 (like footnotes).</div><div><br></div><div>Also note they can repeat so:</=
div><div><br></div><div><div>=C2=A0 =C2=A0 std::cout &lt;&lt; F&quot;$ The =
registers are ($spi, $pc) in decimal, ($1:spi, $1:pc) in hex, and ($2:spi, =
$2:pc) in octal.&quot; {std::hex, std::oct};</div><div><br></div><div>So th=
e formatting information can be shared amongst multiple embedded expression=
s.=C2=A0 It is easy to see how this is useful.</div><div><br></div><div>The=
re is also a performance issue with having the formatting inline as you sug=
gest.=C2=A0 A function hex that takes a string and returns a string would p=
erform a heap allocation of the hex string and then as a second step interp=
olate it into the interpolated string.=C2=A0 By having the formatting separ=
ate this enables iostreams (or other interpolated string consuming librarie=
s) to stream the data directly to hex, without the intermediate value.=C2=
=A0 This is the same concept as iostreams.</div><div><br></div></div></div>
</blockquote></div></div></blockquote></div></div></div></div><div class=3D=
"HOEnZb"><div class=3D"h5">

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/" target=3D"_blank">http://groups.google.com/a/isocpp.org/gro=
up/std-proposals/</a>.<br>
</div></div></blockquote></div><br></div></div>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

--047d7b874e50fb31230520ace18a--

.
