Topic: P0756R0: "Lambda syntax should be more
Author: "Arthur O'Dwyer" <arthur.j.odwyer@gmail.com>
Date: Tue, 18 Jul 2017 10:26:46 -0700
Raw View
--94eb2c1cc5c0e6752205549ad17b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Tue, Jul 18, 2017 at 10:01 AM, Nicol Bolas <jmckesson@gmail.com> wrote:
> On Tuesday, July 18, 2017 at 12:19:37 PM UTC-4, Barry Revzin wrote:
>>
>> As for making redundancy illegal, I believe that if you write something
>>> redundant, then you've clearly made some kind of mistake. If you use a
>>> default capture, and you then capture a variable in the same way as the
>>> default capture, then you are perhaps confused as to what you meant to
>>> capture and how you meant to capture it.
>>>
>>
>> I think the problem OP is trying to solve is that he wants to capture a
>> variable by-copy that isn't actually odr-used (or really, used by any
>> definition) in the lambda. So [=3D] won't capture it, but [=3D, token] i=
s
>> ill-formed.
>>
>
> In that case, I think the `x=3Dx` form would make it more clear what you'=
re
> trying to do. It demonstrates that you're not merely capturing the variab=
le
> for use in the lambda; you're explicitly and deliberately copying it into
> the members of the object.
>
Yep, that's covered in the paper.
In re:
> It's a simple rule to remember: *put the default **first**.* I don't
think that rule affects teachability.
I'd like to add that sentence to the paper, somewhere, so that I can rebut
it.
Currently C++ supports "defaults" or "default-like behavior" in the
following places that I'm aware of:
- Default-valued function arguments (only at the *end*)
- C-style variadic "do this with all the unmatched arguments" (only at the
*end*)
- Variadic template parameter packs (anywhere, but typically you want to
put them at the *end*)
- Aggregate initializer "set all other fields to zero" (only at the *end*)
- Default-valued template parameters (anywhere)
- Non-static data members (anywhere)
- *Lambda captures (only at the beginning)*
Am I missing anyplace in C++ that *does* follow the simple rule "put the
default *first*"? It seems to me that that "rule" is more of a special
case that *changes* the general rule *only* in the case of lambda-captures
=E2=80=94 which is why I'm proposing to change it, to bring capture-lists i=
nto
closer harmony with the rest of the language.
In many of the above cases, there's a grammatical reason that they can
appear *only* at the end of the construct. For the cases where there's no
grammatical reason to put them at the end, C++ allows you to put them
anywhere. =E2=80=94 and then there's lambda-captures, which currently work
"backwards" from the rest of the language.
=E2=80=93Arthur
--=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.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CADvuK0%2BKBmDo4QRCwg1DKgJpKnA6%2BOimuDDJvnCz3AO=
%3DwG1q%2Bw%40mail.gmail.com.
--94eb2c1cc5c0e6752205549ad17b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Tue, Jul 18, 2017 at 10:01 AM, Nicol Bolas <span dir=3D=
"ltr"><<a href=3D"mailto:jmckesson@gmail.com" target=3D"_blank">jmckesso=
n@gmail.com</a>></span> wrote:<br><div class=3D"gmail_extra"><div class=
=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-l=
eft-style:solid;padding-left:1ex"><div dir=3D"ltr"><span class=3D"gmail-">O=
n Tuesday, July 18, 2017 at 12:19:37 PM UTC-4, Barry Revzin wrote:<blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-widt=
h:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-le=
ft:1ex"><div dir=3D"ltr"><blockquote class=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"><div>As for maki=
ng redundancy illegal, I believe that if you write something redundant, the=
n you've clearly made some kind of mistake. If you use a default captur=
e, and you then capture a variable in the same way as the default capture, =
then you are perhaps confused as to what you meant to capture and how you m=
eant to capture it.<br></div></div></blockquote><div><br></div><div>I think=
the problem OP is trying to solve is that he wants to capture a variable b=
y-copy that isn't actually odr-used (or really, used by any definition)=
in the lambda. So [=3D] won't capture it, but [=3D, token] is ill-form=
ed.</div></div></blockquote></span><div><br>In that case, I think the `x=3D=
x` form would make it more clear what you're trying to do. It demonstra=
tes that you're not merely capturing the variable for use in the lambda=
; you're explicitly and deliberately copying it into the members of the=
object.<br></div></div></blockquote><div><br></div><div>Yep, that's co=
vered in the paper.</div><div><br></div><div>In re:</div><div><span style=
=3D"font-size:13px">> It's a simple rule to remember: <b>put the def=
ault=C2=A0</b></span><i style=3D"font-size:13px"><b>first</b></i><span styl=
e=3D"font-size:13px"><b>.</b> I don't think that rule affects teachabil=
ity.</span><br></div><div><br></div><div>I'd like to add that sentence =
to the paper, somewhere, so that I can rebut it.</div><div>Currently C++ su=
pports "defaults" or "default-like behavior" in the fol=
lowing places that I'm aware of:</div><div>- Default-valued function ar=
guments (only at the <b>end</b>)</div><div>- C-style variadic "do this=
with all the unmatched arguments" (only at the <b>end</b>)</div><div>=
- Variadic template parameter packs (anywhere, but typically you want to pu=
t them at the <b>end</b>)</div><div>- Aggregate initializer "set all o=
ther fields to zero" (only at the <b>end</b>)<br></div><div>- Default-=
valued template parameters (anywhere)</div><div>- Non-static data members (=
anywhere)</div><div>- <b>Lambda captures (only at the beginning)</b></div><=
div><br></div><div>Am I missing anyplace in C++ that <i>does</i> follow the=
simple rule "put the default <i>first</i>"?=C2=A0 It seems to me=
that that "rule" is more of a special case that <i>changes</i> t=
he general rule=C2=A0<i>only</i> in the case of lambda-captures =E2=80=94 w=
hich is why I'm proposing to change it, to bring capture-lists into clo=
ser harmony with the rest of the language.</div><div><br></div><div>In many=
of the above cases, there's a grammatical reason that they can appear =
<i>only</i> at the end of the construct. For the cases where there's no=
grammatical reason to put them at the end, C++ allows you to put them anyw=
here. =E2=80=94 and then there's lambda-captures, which currently work =
"backwards" from the rest of the language.</div><div><br></div><d=
iv>=E2=80=93Arthur</div></div></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" 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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CADvuK0%2BKBmDo4QRCwg1DKgJpKnA6%2BOim=
uDDJvnCz3AO%3DwG1q%2Bw%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoo=
ter">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CADvuK0%2=
BKBmDo4QRCwg1DKgJpKnA6%2BOimuDDJvnCz3AO%3DwG1q%2Bw%40mail.gmail.com</a>.<br=
/>
--94eb2c1cc5c0e6752205549ad17b--
.
Author: Nicol Bolas <jmckesson@gmail.com>
Date: Tue, 18 Jul 2017 10:41:03 -0700 (PDT)
Raw View
------=_Part_2169_295328553.1500399663449
Content-Type: multipart/alternative;
boundary="----=_Part_2170_1956804323.1500399663450"
------=_Part_2170_1956804323.1500399663450
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Tuesday, July 18, 2017 at 1:26:49 PM UTC-4, Arthur O'Dwyer wrote:
>
> On Tue, Jul 18, 2017 at 10:01 AM, Nicol Bolas <jmck...@gmail.com=20
> <javascript:>> wrote:
>
>> On Tuesday, July 18, 2017 at 12:19:37 PM UTC-4, Barry Revzin wrote:
>>>
>>> As for making redundancy illegal, I believe that if you write something=
=20
>>>> redundant, then you've clearly made some kind of mistake. If you use a=
=20
>>>> default capture, and you then capture a variable in the same way as th=
e=20
>>>> default capture, then you are perhaps confused as to what you meant to=
=20
>>>> capture and how you meant to capture it.
>>>>
>>>
>>> I think the problem OP is trying to solve is that he wants to capture a=
=20
>>> variable by-copy that isn't actually odr-used (or really, used by any=
=20
>>> definition) in the lambda. So [=3D] won't capture it, but [=3D, token] =
is=20
>>> ill-formed.
>>>
>>
>> In that case, I think the `x=3Dx` form would make it more clear what you=
're=20
>> trying to do. It demonstrates that you're not merely capturing the varia=
ble=20
>> for use in the lambda; you're explicitly and deliberately copying it int=
o=20
>> the members of the object.
>>
>
> Yep, that's covered in the paper.
>
> In re:
> > It's a simple rule to remember: *put the default **first**.* I don't=20
> think that rule affects teachability.
>
> I'd like to add that sentence to the paper, somewhere, so that I can rebu=
t=20
> it.
> Currently C++ supports "defaults" or "default-like behavior" in the=20
> following places that I'm aware of:
> - Default-valued function arguments (only at the *end*)
> - C-style variadic "do this with all the unmatched arguments" (only at th=
e=20
> *end*)
> - Variadic template parameter packs (anywhere, but typically you want to=
=20
> put them at the *end*)
> - Aggregate initializer "set all other fields to zero" (only at the *end*=
)
> - Default-valued template parameters (anywhere)
> - Non-static data members (anywhere)
> - *Lambda captures (only at the beginning)*
>
>
Notably, most of those are about values: initializing a particular named=20
construct with a particular value. The ones that aren't are the variadics.
Specifying a default capture for a lambda is not assigning a named=20
construct a particular value. So there's no reason to expect them to work=
=20
the same way. Just because they use the same word "default" does not mean=
=20
they're somehow comparable.
Unless you think that "default initialization" is somehow related to and=20
should be syntactically consistent with "default parameters" or "default=20
capture".
=20
> Am I missing anyplace in C++ that *does* follow the simple rule "put the=
=20
> default *first*"? It seems to me that that "rule" is more of a special=
=20
> case that *changes* the general rule *only* in the case of=20
> lambda-captures =E2=80=94 which is why I'm proposing to change it, to bri=
ng=20
> capture-lists into closer harmony with the rest of the language.
>
To what end? You're making it harder for a user to find how the lambda=20
captures values by default. "Consistency" (even if we ignore the above,=20
where we show there's no expectation of consistency) is not as important as=
=20
usability.
Think of it like this. If C++ had more available syntax, the default=20
capture style would be part of the lambda inducer's syntax itself. We only=
=20
put it inside the inducer because it's syntactically easier.
--=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.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/5d55f1ce-dce7-4dbe-a4e1-6569d99e5ced%40isocpp.or=
g.
------=_Part_2170_1956804323.1500399663450
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Tuesday, July 18, 2017 at 1:26:49 PM UTC-4, Arthur O=
9;Dwyer wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-l=
eft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"=
>On Tue, Jul 18, 2017 at 10:01 AM, Nicol Bolas <span dir=3D"ltr"><<a hre=
f=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"rRxW-lGtAgAJ" =
rel=3D"nofollow" onmousedown=3D"this.href=3D'javascript:';return tr=
ue;" onclick=3D"this.href=3D'javascript:';return true;">jmck...@gma=
il.com</a>></span> wrote:<br><div><div class=3D"gmail_quote"><blockquote=
class=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"><span>On Tuesday, July 18, 2017 at 12:19:37 PM UTC-4=
, Barry Revzin wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);bord=
er-left-style:solid;padding-left:1ex"><div dir=3D"ltr"><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;borde=
r-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><di=
v dir=3D"ltr"><div>As for making redundancy illegal, I believe that if you =
write something redundant, then you've clearly made some kind of mistak=
e. If you use a default capture, and you then capture a variable in the sam=
e way as the default capture, then you are perhaps confused as to what you =
meant to capture and how you meant to capture it.<br></div></div></blockquo=
te><div><br></div><div>I think the problem OP is trying to solve is that he=
wants to capture a variable by-copy that isn't actually odr-used (or r=
eally, used by any definition) in the lambda. So [=3D] won't capture it=
, but [=3D, token] is ill-formed.</div></div></blockquote></span><div><br>I=
n that case, I think the `x=3Dx` form would make it more clear what you'=
;re trying to do. It demonstrates that you're not merely capturing the =
variable for use in the lambda; you're explicitly and deliberately copy=
ing it into the members of the object.<br></div></div></blockquote><div><br=
></div><div>Yep, that's covered in the paper.</div><div><br></div><div>=
In re:</div><div><span style=3D"font-size:13px">> It's a simple rule=
to remember: <b>put the default=C2=A0</b></span><i style=3D"font-size:13px=
"><b>first</b></i><span style=3D"font-size:13px"><b>.</b> I don't think=
that rule affects teachability.</span><br></div><div><br></div><div>I'=
d like to add that sentence to the paper, somewhere, so that I can rebut it=
..</div><div>Currently C++ supports "defaults" or "default-li=
ke behavior" in the following places that I'm aware of:</div><div>=
- Default-valued function arguments (only at the <b>end</b>)</div><div>- C-=
style variadic "do this with all the unmatched arguments" (only a=
t the <b>end</b>)</div><div>- Variadic template parameter packs (anywhere, =
but typically you want to put them at the <b>end</b>)</div><div>- Aggregate=
initializer "set all other fields to zero" (only at the <b>end</=
b>)<br></div><div>- Default-valued template parameters (anywhere)</div><div=
>- Non-static data members (anywhere)</div><div>- <b>Lambda captures (only =
at the beginning)</b></div><div><br></div></div></div></div></blockquote><d=
iv><br>Notably, most of those are about values: initializing a particular n=
amed construct with a particular value. The ones that aren't are the va=
riadics.<br><br>Specifying a default capture for a lambda is not assigning =
a named construct a particular value. So there's no reason to expect th=
em to work the same way. Just because they use the same word "default&=
quot; does not mean they're somehow comparable.<br><br>Unless you think=
that "default initialization" is somehow related to and should b=
e syntactically consistent with "default parameters" or "def=
ault capture".<br>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: =
1ex;"><div dir=3D"ltr"><div><div class=3D"gmail_quote"><div></div><div>Am I=
missing anyplace in C++ that <i>does</i> follow the simple rule "put =
the default <i>first</i>"?=C2=A0 It seems to me that that "rule&q=
uot; is more of a special case that <i>changes</i> the general rule=C2=A0<i=
>only</i> in the case of lambda-captures =E2=80=94 which is why I'm pro=
posing to change it, to bring capture-lists into closer harmony with the re=
st of the language.</div></div></div></div></blockquote><div><br>To what en=
d? You're making it harder for a user to find how the lambda captures v=
alues by default. "Consistency" (even if we ignore the above, whe=
re we show there's no expectation of consistency) is not as important a=
s usability.<br><br>Think of it like this. If C++ had more available syntax=
, the default capture style would be part of the lambda inducer's synta=
x itself. We only put it inside the inducer because it's syntactically =
easier.<br></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" 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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/5d55f1ce-dce7-4dbe-a4e1-6569d99e5ced%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/5d55f1ce-dce7-4dbe-a4e1-6569d99e5ced=
%40isocpp.org</a>.<br />
------=_Part_2170_1956804323.1500399663450--
------=_Part_2169_295328553.1500399663449--
.
Author: Greg Marr <gregmmarr@gmail.com>
Date: Sat, 12 Aug 2017 19:36:57 -0700 (PDT)
Raw View
------=_Part_3426_1090124765.1502591817960
Content-Type: multipart/alternative;
boundary="----=_Part_3427_124918642.1502591817961"
------=_Part_3427_124918642.1502591817961
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Tuesday, July 18, 2017 at 1:26:49 PM UTC-4, Arthur O'Dwyer wrote:
>
> In many of the above cases, there's a grammatical reason that they can=20
> appear *only* at the end of the construct. For the cases where there's no=
=20
> grammatical reason to put them at the end, C++ allows you to put them=20
> anywhere. =E2=80=94 and then there's lambda-captures, which currently wor=
k=20
> "backwards" from the rest of the language.
>
With the default first, the grammar can enforce that it's only used once,=
=20
and that only one of them is used. With it allowed anywhere, as in your=20
paper, it can't be enforced by the grammar. so you had to add the separate=
=20
rule to spell out that restriction.
--=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.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/8a373416-9b6f-4572-9a88-3b7e39f166f8%40isocpp.or=
g.
------=_Part_3427_124918642.1502591817961
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Tuesday, July 18, 2017 at 1:26:49 PM UTC-4, Arthur O=
9;Dwyer wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-l=
eft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"=
><div class=3D"gmail_quote"><div>In many of the above cases, there's a =
grammatical reason that they can appear <i>only</i> at the end of the const=
ruct. For the cases where there's no grammatical reason to put them at =
the end, C++ allows you to put them anywhere. =E2=80=94 and then there'=
s lambda-captures, which currently work "backwards" from the rest=
of the language.<br></div></div></div></blockquote><div><br></div><div>Wit=
h the default first, the grammar can enforce that it's only used once, =
and that only one of them is used. =C2=A0With it allowed anywhere, as in yo=
ur paper, it can't be enforced by the grammar. so you had to add the se=
parate rule to spell out that restriction.</div><div><br></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" 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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/8a373416-9b6f-4572-9a88-3b7e39f166f8%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/8a373416-9b6f-4572-9a88-3b7e39f166f8=
%40isocpp.org</a>.<br />
------=_Part_3427_124918642.1502591817961--
------=_Part_3426_1090124765.1502591817960--
.
Author: "Arthur O'Dwyer" <arthur.j.odwyer@gmail.com>
Date: Sat, 12 Aug 2017 21:52:21 -0700
Raw View
--94eb2c05f3e6c826ae05569b4fdc
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Sat, Aug 12, 2017 at 7:36 PM, Greg Marr <gregmmarr@gmail.com> wrote:
> On Tuesday, July 18, 2017 at 1:26:49 PM UTC-4, Arthur O'Dwyer wrote:
>>
>> In many of the above cases, there's a grammatical reason that they can
>> appear *only* at the end of the construct. For the cases where there's
>> no grammatical reason to put them at the end, C++ allows you to put them
>> anywhere. =E2=80=94 and then there's lambda-captures, which currently wo=
rk
>> "backwards" from the rest of the language.
>>
>
> With the default first, the grammar can enforce that it's only used once,
> and that only one of them is used. With it allowed anywhere, as in your
> paper, it can't be enforced by the grammar. so you had to add the separat=
e
> rule to spell out that restriction.
>
Yup. But I was able to strike out a whole paragraph of *other* rules that
can't be enforced by the grammar! :)
I've finally gotten around to updating the paper to add a section
attempting to rebut the "default always goes first" argument.
Does anyone happen to know the exact date of the pre-Albuquerque mailing
submission deadline? I was hoping to see it mentioned in N4633
<https://isocpp.org/files/papers/N4633.pdf> but nope.
Thanks,
=E2=80=93Arthur
--=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.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CADvuK0J6JupL8mnyBz2LiynFsTz7kg8K1cqsVe5ntS4gaEn=
rew%40mail.gmail.com.
--94eb2c05f3e6c826ae05569b4fdc
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">On Sat, Aug 12, 2017 at 7:36 PM, Greg Marr <span dir=3D"lt=
r"><<a href=3D"mailto:gregmmarr@gmail.com" target=3D"_blank">gregmmarr@g=
mail.com</a>></span> wrote:<br><div class=3D"gmail_extra"><div class=3D"=
gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><span class=3D=
"">On Tuesday, July 18, 2017 at 1:26:49 PM UTC-4, Arthur O'Dwyer wrote:=
<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmai=
l_quote"><div>In many of the above cases, there's a grammatical reason =
that they can appear <i>only</i> at the end of the construct. For the cases=
where there's no grammatical reason to put them at the end, C++ allows=
you to put them anywhere. =E2=80=94 and then there's lambda-captures, =
which currently work "backwards" from the rest of the language.<b=
r></div></div></div></blockquote><div><br></div></span><div>With the defaul=
t first, the grammar can enforce that it's only used once, and that onl=
y one of them is used.=C2=A0 With it allowed anywhere, as in your paper, it=
can't be enforced by the grammar. so you had to add the separate rule =
to spell out that restriction.</div></div></blockquote><div><br></div><div>=
Yup. But I was able to strike out a whole paragraph of <i>other</i> rules t=
hat can't be enforced by the grammar! :)</div><div>I've finally got=
ten around to updating the paper to add a section attempting to rebut the &=
quot;default always goes first" argument.</div><div><br></div><div>Doe=
s anyone happen to know the exact date of the pre-Albuquerque mailing submi=
ssion deadline?=C2=A0 I was hoping to see it mentioned in <a href=3D"https:=
//isocpp.org/files/papers/N4633.pdf">N4633</a> but nope.</div><div><br></di=
v><div>Thanks,</div><div>=E2=80=93Arthur</div></div></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" 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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CADvuK0J6JupL8mnyBz2LiynFsTz7kg8K1cqs=
Ve5ntS4gaEnrew%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CADvuK0J6JupL8mny=
Bz2LiynFsTz7kg8K1cqsVe5ntS4gaEnrew%40mail.gmail.com</a>.<br />
--94eb2c05f3e6c826ae05569b4fdc--
.
Author: Tom Honermann <tom@honermann.net>
Date: Sun, 13 Aug 2017 09:54:07 -0400
Raw View
--Apple-Mail-C7B28F84-9202-44E0-998D-914828F07DBC
Content-Type: text/plain; charset="UTF-8"
> On Aug 13, 2017, at 12:52 AM, Arthur O'Dwyer <arthur.j.odwyer@gmail.com> wrote:
>
> Does anyone happen to know the exact date of the pre-Albuquerque mailing submission deadline? I was hoping to see it mentioned in N4633 but nope.
October 16th.
Tom.
--
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.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/FE5D3122-1198-4F81-BE28-DDEAB8A7357B%40honermann.net.
--Apple-Mail-C7B28F84-9202-44E0-998D-914828F07DBC
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=
=3Dutf-8"></head><body dir=3D"auto"><div><br></div><div>On Aug 13, 2017, at=
12:52 AM, Arthur O'Dwyer <<a href=3D"mailto:arthur.j.odwyer@gmail.com">=
arthur.j.odwyer@gmail.com</a>> wrote:<br><br></div><blockquote type=3D"c=
ite"><div><div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_q=
uote"><div>Does anyone happen to know the exact date of the pre-Albuquerque=
mailing submission deadline? I was hoping to see it mentioned in <a =
href=3D"https://isocpp.org/files/papers/N4633.pdf">N4633</a> but nope.</div=
></div></div></div>
</div></blockquote><br><div>October 16th. </div><div><br></div><div>To=
m. </div></body></html>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" 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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/FE5D3122-1198-4F81-BE28-DDEAB8A7357B%=
40honermann.net?utm_medium=3Demail&utm_source=3Dfooter">https://groups.goog=
le.com/a/isocpp.org/d/msgid/std-proposals/FE5D3122-1198-4F81-BE28-DDEAB8A73=
57B%40honermann.net</a>.<br />
--Apple-Mail-C7B28F84-9202-44E0-998D-914828F07DBC--
.