Topic: Allow "default" in function calls to mirror


Author: Jake Arkinstall <jake.arkinstall@gmail.com>
Date: Thu, 4 Oct 2018 21:43:01 +0100
Raw View
--0000000000000f13e705776d3416
Content-Type: text/plain; charset="UTF-8"

I don't imagine it's something I'll want to use, but I see no conceptual
downsides or conflicts (for a second I was wondering about overloads, then
I realised the obvious paradox in that line of thought).

My only thought: Usually a function is designed such that default arguments
get successively *less* important and *less* likely to be changed. Also
sometimes it's a whole lot clearer just to put the default in there,
especially if the default values later change and you don't anticipate your
code to behave differently. The same is true for later arguments anyway,
but again they're usually of less importance and changes are often just to
handle edge cases.

On Thu, 4 Oct 2018, 21:24 , <jan.krassnigg@gmail.com> wrote:

> When you have a function with default parameter values, the compiler
> allows to specify them or leave them out:
>
> void foo(int a = 1, int b = 2);
>
> void bar()
> {
>   foo();
>   foo(3);
>   foo(1, 4);
> }
>
> It would be nice, if additionally I could use "default" to take the value
> from the declaration to not be forced to mirror the default value:
>
> void bar()
> {
>   foo(default, 4);
> }
>
> All of the information is already available to the compiler so this should
> be trivial to add. This makes it easier to use functions with many default
> parameters, when you are actually only interested in adjusting one of the
> later ones.
>
> Thoughts?
>
> --
> 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/c6c6f5f5-548f-4543-b394-38d0d22fbd40%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/c6c6f5f5-548f-4543-b394-38d0d22fbd40%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>

--
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/CAC%2B0CCMsUp4Pnc_TJFMmt0DimkHoy_Us28J6zFQ0_%3D2g3NFgxw%40mail.gmail.com.

--0000000000000f13e705776d3416
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div>I don&#39;t imagine it&#39;s something I&#39;ll want=
 to use, but I see no conceptual downsides or conflicts (for a second I was=
 wondering about overloads, then I realised the obvious paradox in that lin=
e of thought).</div><div dir=3D"auto"><br></div><div dir=3D"auto">My only t=
hought: Usually a function is designed such that default arguments get succ=
essively <i>less</i>=C2=A0important and <i>less</i> likely to be changed. A=
lso sometimes it&#39;s a whole lot clearer just to put the default in there=
, especially if the default values later change and you don&#39;t anticipat=
e your code to behave differently. The same is true for later arguments any=
way, but again they&#39;re usually of less importance and changes are often=
 just to handle edge cases.<br><br><div class=3D"gmail_quote" dir=3D"auto">=
<div dir=3D"ltr">On Thu, 4 Oct 2018, 21:24 , &lt;<a href=3D"mailto:jan.kras=
snigg@gmail.com">jan.krassnigg@gmail.com</a>&gt; wrote:<br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc sol=
id;padding-left:1ex"><div dir=3D"ltr">When you have a function with default=
 parameter values, the compiler allows to specify them or leave them out:<b=
r><div></div><br><div style=3D"background-color:rgb(250,250,250);border-col=
or:rgb(187,187,187);border-style:solid;border-width:1px" class=3D"m_-713112=
4157254423451prettyprint"><code class=3D"m_-7131124157254423451prettyprint"=
><div class=3D"m_-7131124157254423451subprettyprint"><span style=3D"color:#=
008" class=3D"m_-7131124157254423451styled-by-prettify">void</span><span st=
yle=3D"color:#000" class=3D"m_-7131124157254423451styled-by-prettify"> foo<=
/span><span style=3D"color:#660" class=3D"m_-7131124157254423451styled-by-p=
rettify">(</span><span style=3D"color:#008" class=3D"m_-7131124157254423451=
styled-by-prettify">int</span><span style=3D"color:#000" class=3D"m_-713112=
4157254423451styled-by-prettify"> a </span><span style=3D"color:#660" class=
=3D"m_-7131124157254423451styled-by-prettify">=3D</span><span style=3D"colo=
r:#000" class=3D"m_-7131124157254423451styled-by-prettify"> </span><span st=
yle=3D"color:#066" class=3D"m_-7131124157254423451styled-by-prettify">1</sp=
an><span style=3D"color:#660" class=3D"m_-7131124157254423451styled-by-pret=
tify">,</span><span style=3D"color:#000" class=3D"m_-7131124157254423451sty=
led-by-prettify"> </span><span style=3D"color:#008" class=3D"m_-71311241572=
54423451styled-by-prettify">int</span><span style=3D"color:#000" class=3D"m=
_-7131124157254423451styled-by-prettify"> b </span><span style=3D"color:#66=
0" class=3D"m_-7131124157254423451styled-by-prettify">=3D</span><span style=
=3D"color:#000" class=3D"m_-7131124157254423451styled-by-prettify"> </span>=
<span style=3D"color:#066" class=3D"m_-7131124157254423451styled-by-prettif=
y">2</span><span style=3D"color:#660" class=3D"m_-7131124157254423451styled=
-by-prettify">);</span><span style=3D"color:#000" class=3D"m_-7131124157254=
423451styled-by-prettify"><br><br></span><span style=3D"color:#008" class=
=3D"m_-7131124157254423451styled-by-prettify">void</span><span style=3D"col=
or:#000" class=3D"m_-7131124157254423451styled-by-prettify"> bar</span><spa=
n style=3D"color:#660" class=3D"m_-7131124157254423451styled-by-prettify">(=
)</span><span style=3D"color:#000" class=3D"m_-7131124157254423451styled-by=
-prettify"><br></span><span style=3D"color:#660" class=3D"m_-71311241572544=
23451styled-by-prettify">{</span><span style=3D"color:#000" class=3D"m_-713=
1124157254423451styled-by-prettify"><br>=C2=A0 foo</span><span style=3D"col=
or:#660" class=3D"m_-7131124157254423451styled-by-prettify">();</span><span=
 style=3D"color:#000" class=3D"m_-7131124157254423451styled-by-prettify"><b=
r>=C2=A0 foo</span><span style=3D"color:#660" class=3D"m_-71311241572544234=
51styled-by-prettify">(</span><span style=3D"color:#066" class=3D"m_-713112=
4157254423451styled-by-prettify">3</span><span style=3D"color:#660" class=
=3D"m_-7131124157254423451styled-by-prettify">);</span><span style=3D"color=
:#000" class=3D"m_-7131124157254423451styled-by-prettify"><br>=C2=A0 foo</s=
pan><span style=3D"color:#660" class=3D"m_-7131124157254423451styled-by-pre=
ttify">(</span><span style=3D"color:#066" class=3D"m_-7131124157254423451st=
yled-by-prettify">1</span><span style=3D"color:#660" class=3D"m_-7131124157=
254423451styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m_=
-7131124157254423451styled-by-prettify"> </span><span style=3D"color:#066" =
class=3D"m_-7131124157254423451styled-by-prettify">4</span><span style=3D"c=
olor:#660" class=3D"m_-7131124157254423451styled-by-prettify">);</span><spa=
n style=3D"color:#000" class=3D"m_-7131124157254423451styled-by-prettify"><=
br></span><span style=3D"color:#660" class=3D"m_-7131124157254423451styled-=
by-prettify">}</span><span style=3D"color:#000" class=3D"m_-713112415725442=
3451styled-by-prettify"><br></span></div></code></div><br><div>It would be =
nice, if additionally I could use &quot;default&quot; to take the value fro=
m the declaration to not be forced to mirror the default value:</div><div><=
br></div><div style=3D"background-color:rgb(250,250,250);border-color:rgb(1=
87,187,187);border-style:solid;border-width:1px" class=3D"m_-71311241572544=
23451prettyprint"><code class=3D"m_-7131124157254423451prettyprint"><div cl=
ass=3D"m_-7131124157254423451subprettyprint"><span style=3D"color:#008" cla=
ss=3D"m_-7131124157254423451styled-by-prettify">void</span><span style=3D"c=
olor:#000" class=3D"m_-7131124157254423451styled-by-prettify"> bar</span><s=
pan style=3D"color:#660" class=3D"m_-7131124157254423451styled-by-prettify"=
>()</span><span style=3D"color:#000" class=3D"m_-7131124157254423451styled-=
by-prettify"><br></span><span style=3D"color:#660" class=3D"m_-713112415725=
4423451styled-by-prettify">{</span><span style=3D"color:#000" class=3D"m_-7=
131124157254423451styled-by-prettify"><br>=C2=A0 foo</span><span style=3D"c=
olor:#660" class=3D"m_-7131124157254423451styled-by-prettify">(</span><span=
 style=3D"color:#008" class=3D"m_-7131124157254423451styled-by-prettify">de=
fault</span><span style=3D"color:#660" class=3D"m_-7131124157254423451style=
d-by-prettify">,</span><span style=3D"color:#000" class=3D"m_-7131124157254=
423451styled-by-prettify"> </span><span style=3D"color:#066" class=3D"m_-71=
31124157254423451styled-by-prettify">4</span><span style=3D"color:#660" cla=
ss=3D"m_-7131124157254423451styled-by-prettify">);</span><span style=3D"col=
or:#000" class=3D"m_-7131124157254423451styled-by-prettify"><br></span><spa=
n style=3D"color:#660" class=3D"m_-7131124157254423451styled-by-prettify">}=
</span></div></code></div><div><br>All of the information is already availa=
ble to the compiler so this should be trivial to add. This makes it easier =
to use functions with many default parameters, when you are actually only i=
nterested in adjusting one of the later ones.<br></div><div><br></div><div>=
Thoughts?<br></div></div>

<p></p>

-- <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" rel=3D"noreferrer">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" rel=3D"noreferrer">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/c6c6f5f5-548f-4543-b394-38d0d22fbd40%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"noreferrer">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/c6c6f5f5-548f-4543-b394-38d0d22fbd40%40isocpp.org</a>.<br>
</blockquote></div></div></div>

<p></p>

-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCMsUp4Pnc_TJFMmt0DimkHoy_Us28=
J6zFQ0_%3D2g3NFgxw%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCMsUp=
4Pnc_TJFMmt0DimkHoy_Us28J6zFQ0_%3D2g3NFgxw%40mail.gmail.com</a>.<br />

--0000000000000f13e705776d3416--

.


Author: Daniel Gutson <danielgutson@gmail.com>
Date: Thu, 4 Oct 2018 22:47:37 -0300
Raw View
--00000000000071a64d0577717544
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1466.pdf


El jue., 4 oct. 2018 17:43, Jake Arkinstall <jake.arkinstall@gmail.com>
escribi=C3=B3:

> I don't imagine it's something I'll want to use, but I see no conceptual
> downsides or conflicts (for a second I was wondering about overloads, the=
n
> I realised the obvious paradox in that line of thought).
>
> My only thought: Usually a function is designed such that default
> arguments get successively *less* important and *less* likely to be
> changed. Also sometimes it's a whole lot clearer just to put the default =
in
> there, especially if the default values later change and you don't
> anticipate your code to behave differently. The same is true for later
> arguments anyway, but again they're usually of less importance and change=
s
> are often just to handle edge cases.
>
> On Thu, 4 Oct 2018, 21:24 , <jan.krassnigg@gmail.com> wrote:
>
>> When you have a function with default parameter values, the compiler
>> allows to specify them or leave them out:
>>
>> void foo(int a =3D 1, int b =3D 2);
>>
>> void bar()
>> {
>>   foo();
>>   foo(3);
>>   foo(1, 4);
>> }
>>
>> It would be nice, if additionally I could use "default" to take the valu=
e
>> from the declaration to not be forced to mirror the default value:
>>
>> void bar()
>> {
>>   foo(default, 4);
>> }
>>
>> All of the information is already available to the compiler so this
>> should be trivial to add. This makes it easier to use functions with man=
y
>> default parameters, when you are actually only interested in adjusting o=
ne
>> of the later ones.
>>
>> Thoughts?
>>
>> --
>> You received this message because you are subscribed to the Google Group=
s
>> "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this group and stop receiving emails from it, send a=
n
>> 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/c6c6f5f5-54=
8f-4543-b394-38d0d22fbd40%40isocpp.org
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/c6c6f5f5-5=
48f-4543-b394-38d0d22fbd40%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoo=
ter>
>> .
>>
> --
> 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/CAC%2B0CCMsU=
p4Pnc_TJFMmt0DimkHoy_Us28J6zFQ0_%3D2g3NFgxw%40mail.gmail.com
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCMs=
Up4Pnc_TJFMmt0DimkHoy_Us28J6zFQ0_%3D2g3NFgxw%40mail.gmail.com?utm_medium=3D=
email&utm_source=3Dfooter>
> .
>

--=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/CAFdMc-1WrjRsqEmwrGEhM-UuQnrADNoEj4aLMSVbid0kxWs=
2gw%40mail.gmail.com.

--00000000000071a64d0577717544
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div><a href=3D"http://www.open-std.org/jtc1/sc22/wg21/do=
cs/papers/2003/n1466.pdf">http://www.open-std.org/jtc1/sc22/wg21/docs/paper=
s/2003/n1466.pdf</a></div><div dir=3D"auto"><br><br><div class=3D"gmail_quo=
te" dir=3D"auto"><div dir=3D"ltr">El jue., 4 oct. 2018 17:43, Jake Arkinsta=
ll &lt;<a href=3D"mailto:jake.arkinstall@gmail.com">jake.arkinstall@gmail.c=
om</a>&gt; escribi=C3=B3:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=
=3D"auto"><div>I don&#39;t imagine it&#39;s something I&#39;ll want to use,=
 but I see no conceptual downsides or conflicts (for a second I was wonderi=
ng about overloads, then I realised the obvious paradox in that line of tho=
ught).</div><div dir=3D"auto"><br></div><div dir=3D"auto">My only thought: =
Usually a function is designed such that default arguments get successively=
 <i>less</i>=C2=A0important and <i>less</i> likely to be changed. Also some=
times it&#39;s a whole lot clearer just to put the default in there, especi=
ally if the default values later change and you don&#39;t anticipate your c=
ode to behave differently. The same is true for later arguments anyway, but=
 again they&#39;re usually of less importance and changes are often just to=
 handle edge cases.<br><br><div class=3D"gmail_quote" dir=3D"auto"><div dir=
=3D"ltr">On Thu, 4 Oct 2018, 21:24 , &lt;<a href=3D"mailto:jan.krassnigg@gm=
ail.com" target=3D"_blank" rel=3D"noreferrer">jan.krassnigg@gmail.com</a>&g=
t; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
..8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">When you=
 have a function with default parameter values, the compiler allows to spec=
ify them or leave them out:<br><div></div><br><div style=3D"background-colo=
r:rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;border-=
width:1px" class=3D"m_1947300012370358327m_-7131124157254423451prettyprint"=
><code class=3D"m_1947300012370358327m_-7131124157254423451prettyprint"><di=
v class=3D"m_1947300012370358327m_-7131124157254423451subprettyprint"><span=
 style=3D"color:#008" class=3D"m_1947300012370358327m_-7131124157254423451s=
tyled-by-prettify">void</span><span style=3D"color:#000" class=3D"m_1947300=
012370358327m_-7131124157254423451styled-by-prettify"> foo</span><span styl=
e=3D"color:#660" class=3D"m_1947300012370358327m_-7131124157254423451styled=
-by-prettify">(</span><span style=3D"color:#008" class=3D"m_194730001237035=
8327m_-7131124157254423451styled-by-prettify">int</span><span style=3D"colo=
r:#000" class=3D"m_1947300012370358327m_-7131124157254423451styled-by-prett=
ify"> a </span><span style=3D"color:#660" class=3D"m_1947300012370358327m_-=
7131124157254423451styled-by-prettify">=3D</span><span style=3D"color:#000"=
 class=3D"m_1947300012370358327m_-7131124157254423451styled-by-prettify"> <=
/span><span style=3D"color:#066" class=3D"m_1947300012370358327m_-713112415=
7254423451styled-by-prettify">1</span><span style=3D"color:#660" class=3D"m=
_1947300012370358327m_-7131124157254423451styled-by-prettify">,</span><span=
 style=3D"color:#000" class=3D"m_1947300012370358327m_-7131124157254423451s=
tyled-by-prettify"> </span><span style=3D"color:#008" class=3D"m_1947300012=
370358327m_-7131124157254423451styled-by-prettify">int</span><span style=3D=
"color:#000" class=3D"m_1947300012370358327m_-7131124157254423451styled-by-=
prettify"> b </span><span style=3D"color:#660" class=3D"m_19473000123703583=
27m_-7131124157254423451styled-by-prettify">=3D</span><span style=3D"color:=
#000" class=3D"m_1947300012370358327m_-7131124157254423451styled-by-prettif=
y"> </span><span style=3D"color:#066" class=3D"m_1947300012370358327m_-7131=
124157254423451styled-by-prettify">2</span><span style=3D"color:#660" class=
=3D"m_1947300012370358327m_-7131124157254423451styled-by-prettify">);</span=
><span style=3D"color:#000" class=3D"m_1947300012370358327m_-71311241572544=
23451styled-by-prettify"><br><br></span><span style=3D"color:#008" class=3D=
"m_1947300012370358327m_-7131124157254423451styled-by-prettify">void</span>=
<span style=3D"color:#000" class=3D"m_1947300012370358327m_-713112415725442=
3451styled-by-prettify"> bar</span><span style=3D"color:#660" class=3D"m_19=
47300012370358327m_-7131124157254423451styled-by-prettify">()</span><span s=
tyle=3D"color:#000" class=3D"m_1947300012370358327m_-7131124157254423451sty=
led-by-prettify"><br></span><span style=3D"color:#660" class=3D"m_194730001=
2370358327m_-7131124157254423451styled-by-prettify">{</span><span style=3D"=
color:#000" class=3D"m_1947300012370358327m_-7131124157254423451styled-by-p=
rettify"><br>=C2=A0 foo</span><span style=3D"color:#660" class=3D"m_1947300=
012370358327m_-7131124157254423451styled-by-prettify">();</span><span style=
=3D"color:#000" class=3D"m_1947300012370358327m_-7131124157254423451styled-=
by-prettify"><br>=C2=A0 foo</span><span style=3D"color:#660" class=3D"m_194=
7300012370358327m_-7131124157254423451styled-by-prettify">(</span><span sty=
le=3D"color:#066" class=3D"m_1947300012370358327m_-7131124157254423451style=
d-by-prettify">3</span><span style=3D"color:#660" class=3D"m_19473000123703=
58327m_-7131124157254423451styled-by-prettify">);</span><span style=3D"colo=
r:#000" class=3D"m_1947300012370358327m_-7131124157254423451styled-by-prett=
ify"><br>=C2=A0 foo</span><span style=3D"color:#660" class=3D"m_19473000123=
70358327m_-7131124157254423451styled-by-prettify">(</span><span style=3D"co=
lor:#066" class=3D"m_1947300012370358327m_-7131124157254423451styled-by-pre=
ttify">1</span><span style=3D"color:#660" class=3D"m_1947300012370358327m_-=
7131124157254423451styled-by-prettify">,</span><span style=3D"color:#000" c=
lass=3D"m_1947300012370358327m_-7131124157254423451styled-by-prettify"> </s=
pan><span style=3D"color:#066" class=3D"m_1947300012370358327m_-71311241572=
54423451styled-by-prettify">4</span><span style=3D"color:#660" class=3D"m_1=
947300012370358327m_-7131124157254423451styled-by-prettify">);</span><span =
style=3D"color:#000" class=3D"m_1947300012370358327m_-7131124157254423451st=
yled-by-prettify"><br></span><span style=3D"color:#660" class=3D"m_19473000=
12370358327m_-7131124157254423451styled-by-prettify">}</span><span style=3D=
"color:#000" class=3D"m_1947300012370358327m_-7131124157254423451styled-by-=
prettify"><br></span></div></code></div><br><div>It would be nice, if addit=
ionally I could use &quot;default&quot; to take the value from the declarat=
ion to not be forced to mirror the default value:</div><div><br></div><div =
style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187);bo=
rder-style:solid;border-width:1px" class=3D"m_1947300012370358327m_-7131124=
157254423451prettyprint"><code class=3D"m_1947300012370358327m_-71311241572=
54423451prettyprint"><div class=3D"m_1947300012370358327m_-7131124157254423=
451subprettyprint"><span style=3D"color:#008" class=3D"m_194730001237035832=
7m_-7131124157254423451styled-by-prettify">void</span><span style=3D"color:=
#000" class=3D"m_1947300012370358327m_-7131124157254423451styled-by-prettif=
y"> bar</span><span style=3D"color:#660" class=3D"m_1947300012370358327m_-7=
131124157254423451styled-by-prettify">()</span><span style=3D"color:#000" c=
lass=3D"m_1947300012370358327m_-7131124157254423451styled-by-prettify"><br>=
</span><span style=3D"color:#660" class=3D"m_1947300012370358327m_-71311241=
57254423451styled-by-prettify">{</span><span style=3D"color:#000" class=3D"=
m_1947300012370358327m_-7131124157254423451styled-by-prettify"><br>=C2=A0 f=
oo</span><span style=3D"color:#660" class=3D"m_1947300012370358327m_-713112=
4157254423451styled-by-prettify">(</span><span style=3D"color:#008" class=
=3D"m_1947300012370358327m_-7131124157254423451styled-by-prettify">default<=
/span><span style=3D"color:#660" class=3D"m_1947300012370358327m_-713112415=
7254423451styled-by-prettify">,</span><span style=3D"color:#000" class=3D"m=
_1947300012370358327m_-7131124157254423451styled-by-prettify"> </span><span=
 style=3D"color:#066" class=3D"m_1947300012370358327m_-7131124157254423451s=
tyled-by-prettify">4</span><span style=3D"color:#660" class=3D"m_1947300012=
370358327m_-7131124157254423451styled-by-prettify">);</span><span style=3D"=
color:#000" class=3D"m_1947300012370358327m_-7131124157254423451styled-by-p=
rettify"><br></span><span style=3D"color:#660" class=3D"m_19473000123703583=
27m_-7131124157254423451styled-by-prettify">}</span></div></code></div><div=
><br>All of the information is already available to the compiler so this sh=
ould be trivial to add. This makes it easier to use functions with many def=
ault parameters, when you are actually only interested in adjusting one of =
the later ones.<br></div><div><br></div><div>Thoughts?<br></div></div>

<p></p>

-- <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" rel=3D"nore=
ferrer noreferrer" 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" rel=3D"noreferrer noreferrer" target=3D"_blank">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/c6c6f5f5-548f-4543-b394-38d0d22fbd40%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"noreferrer =
noreferrer" target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgi=
d/std-proposals/c6c6f5f5-548f-4543-b394-38d0d22fbd40%40isocpp.org</a>.<br>
</blockquote></div></div></div>

<p></p>

-- <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" rel=3D"noreferrer">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" rel=3D"noreferrer">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/CAC%2B0CCMsUp4Pnc_TJFMmt0DimkHoy_Us28=
J6zFQ0_%3D2g3NFgxw%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfoo=
ter" target=3D"_blank" rel=3D"noreferrer">https://groups.google.com/a/isocp=
p.org/d/msgid/std-proposals/CAC%2B0CCMsUp4Pnc_TJFMmt0DimkHoy_Us28J6zFQ0_%3D=
2g3NFgxw%40mail.gmail.com</a>.<br>
</blockquote></div></div></div>

<p></p>

-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAFdMc-1WrjRsqEmwrGEhM-UuQnrADNoEj4aL=
MSVbid0kxWs2gw%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">htt=
ps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAFdMc-1WrjRsqEmw=
rGEhM-UuQnrADNoEj4aLMSVbid0kxWs2gw%40mail.gmail.com</a>.<br />

--00000000000071a64d0577717544--

.


Author: Patrice Roy <patricer@gmail.com>
Date: Fri, 5 Oct 2018 21:44:41 -0400
Raw View
--000000000000d6fabb0577858891
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

There's a simple solution for that, at least in some cases :

#include <iostream>
#include <utility>
using namespace std;
template <auto V> struct Defaulted {
   using type =3D decltype(V);
   type value =3D V;
   constexpr Defaulted(type value) : value{ value } {
   }
   constexpr operator type() const {
      return value;
   }
   Defaulted() =3D default;
};
auto sum(int a, Defaulted<0> b, int c) {
   return a + b + c;
}
int main() {
   cout << sum(1, 2, 3) << endl;
   cout << somme(1, {}, 3) << endl;
}

It doesn't necessarily generalize to all types, but it's a start...


Le jeu. 4 oct. 2018 =C3=A0 21:47, Daniel Gutson <danielgutson@gmail.com> a
=C3=A9crit :

> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1466.pdf
>
>
> El jue., 4 oct. 2018 17:43, Jake Arkinstall <jake.arkinstall@gmail.com>
> escribi=C3=B3:
>
>> I don't imagine it's something I'll want to use, but I see no conceptual
>> downsides or conflicts (for a second I was wondering about overloads, th=
en
>> I realised the obvious paradox in that line of thought).
>>
>> My only thought: Usually a function is designed such that default
>> arguments get successively *less* important and *less* likely to be
>> changed. Also sometimes it's a whole lot clearer just to put the default=
 in
>> there, especially if the default values later change and you don't
>> anticipate your code to behave differently. The same is true for later
>> arguments anyway, but again they're usually of less importance and chang=
es
>> are often just to handle edge cases.
>>
>> On Thu, 4 Oct 2018, 21:24 , <jan.krassnigg@gmail.com> wrote:
>>
>>> When you have a function with default parameter values, the compiler
>>> allows to specify them or leave them out:
>>>
>>> void foo(int a =3D 1, int b =3D 2);
>>>
>>> void bar()
>>> {
>>>   foo();
>>>   foo(3);
>>>   foo(1, 4);
>>> }
>>>
>>> It would be nice, if additionally I could use "default" to take the
>>> value from the declaration to not be forced to mirror the default value=
:
>>>
>>> void bar()
>>> {
>>>   foo(default, 4);
>>> }
>>>
>>> All of the information is already available to the compiler so this
>>> should be trivial to add. This makes it easier to use functions with ma=
ny
>>> default parameters, when you are actually only interested in adjusting =
one
>>> of the later ones.
>>>
>>> Thoughts?
>>>
>>> --
>>> 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/c6c6f5f5-5=
48f-4543-b394-38d0d22fbd40%40isocpp.org
>>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/c6c6f5f5-=
548f-4543-b394-38d0d22fbd40%40isocpp.org?utm_medium=3Demail&utm_source=3Dfo=
oter>
>>> .
>>>
>> --
>> You received this message because you are subscribed to the Google Group=
s
>> "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this group and stop receiving emails from it, send a=
n
>> 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/CAC%2B0CCMs=
Up4Pnc_TJFMmt0DimkHoy_Us28J6zFQ0_%3D2g3NFgxw%40mail.gmail.com
>> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCM=
sUp4Pnc_TJFMmt0DimkHoy_Us28J6zFQ0_%3D2g3NFgxw%40mail.gmail.com?utm_medium=
=3Demail&utm_source=3Dfooter>
>> .
>>
> --
> 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/CAFdMc-1WrjR=
sqEmwrGEhM-UuQnrADNoEj4aLMSVbid0kxWs2gw%40mail.gmail.com
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAFdMc-1Wrj=
RsqEmwrGEhM-UuQnrADNoEj4aLMSVbid0kxWs2gw%40mail.gmail.com?utm_medium=3Demai=
l&utm_source=3Dfooter>
> .
>

--=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/CAKiZDp3KTr%3DmEk7MRxVA0qLprv9wdRtkv%3D0rNO8gkTj=
552_ZsA%40mail.gmail.com.

--000000000000d6fabb0577858891
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div>There&#39;s a simple solution for th=
at, at least in some cases :</div><div><br></div><div>#include &lt;iostream=
&gt;<br>#include &lt;utility&gt;<br>using namespace std;<br>template &lt;au=
to V&gt; struct Defaulted {<br>=C2=A0=C2=A0 using type =3D decltype(V);<br>=
=C2=A0=C2=A0 type value =3D V;<br>=C2=A0=C2=A0 constexpr Defaulted(type val=
ue) : value{ value } {<br>=C2=A0=C2=A0 }<br>=C2=A0=C2=A0 constexpr operator=
 type() const {<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return value;<br>=C2=A0=
=C2=A0 }<br>=C2=A0=C2=A0 Defaulted() =3D default;<br>};<br>auto sum(int a, =
Defaulted&lt;0&gt; b, int c) {<br>=C2=A0=C2=A0 return a + b + c;<br>}<br>in=
t main() {<br>=C2=A0=C2=A0 cout &lt;&lt; sum(1, 2, 3) &lt;&lt; endl;<br>=C2=
=A0=C2=A0 cout &lt;&lt; somme(1, {}, 3) &lt;&lt; endl;<br>}<br></div><div><=
br></div><div>It doesn&#39;t necessarily generalize to all types, but it&#3=
9;s a start...</div><div><br></div></div></div><br><div class=3D"gmail_quot=
e"><div dir=3D"ltr">Le=C2=A0jeu. 4 oct. 2018 =C3=A0=C2=A021:47, Daniel Guts=
on &lt;<a href=3D"mailto:danielgutson@gmail.com">danielgutson@gmail.com</a>=
&gt; a =C3=A9crit=C2=A0:<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=
=3D"auto"><div><a href=3D"http://www.open-std.org/jtc1/sc22/wg21/docs/paper=
s/2003/n1466.pdf" target=3D"_blank">http://www.open-std.org/jtc1/sc22/wg21/=
docs/papers/2003/n1466.pdf</a></div><div dir=3D"auto"><br><br><div class=3D=
"gmail_quote" dir=3D"auto"><div dir=3D"ltr">El jue., 4 oct. 2018 17:43, Jak=
e Arkinstall &lt;<a href=3D"mailto:jake.arkinstall@gmail.com" target=3D"_bl=
ank">jake.arkinstall@gmail.com</a>&gt; escribi=C3=B3:<br></div><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid=
;padding-left:1ex"><div dir=3D"auto"><div>I don&#39;t imagine it&#39;s some=
thing I&#39;ll want to use, but I see no conceptual downsides or conflicts =
(for a second I was wondering about overloads, then I realised the obvious =
paradox in that line of thought).</div><div dir=3D"auto"><br></div><div dir=
=3D"auto">My only thought: Usually a function is designed such that default=
 arguments get successively <i>less</i>=C2=A0important and <i>less</i> like=
ly to be changed. Also sometimes it&#39;s a whole lot clearer just to put t=
he default in there, especially if the default values later change and you =
don&#39;t anticipate your code to behave differently. The same is true for =
later arguments anyway, but again they&#39;re usually of less importance an=
d changes are often just to handle edge cases.<br><br><div class=3D"gmail_q=
uote" dir=3D"auto"><div dir=3D"ltr">On Thu, 4 Oct 2018, 21:24 , &lt;<a href=
=3D"mailto:jan.krassnigg@gmail.com" rel=3D"noreferrer" target=3D"_blank">ja=
n.krassnigg@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_qu=
ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex=
"><div dir=3D"ltr">When you have a function with default parameter values, =
the compiler allows to specify them or leave them out:<br><div></div><br><d=
iv style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,187)=
;border-style:solid;border-width:1px" class=3D"m_54273393621900802m_1947300=
012370358327m_-7131124157254423451prettyprint"><code class=3D"m_54273393621=
900802m_1947300012370358327m_-7131124157254423451prettyprint"><div class=3D=
"m_54273393621900802m_1947300012370358327m_-7131124157254423451subprettypri=
nt"><span style=3D"color:#008" class=3D"m_54273393621900802m_19473000123703=
58327m_-7131124157254423451styled-by-prettify">void</span><span style=3D"co=
lor:#000" class=3D"m_54273393621900802m_1947300012370358327m_-7131124157254=
423451styled-by-prettify"> foo</span><span style=3D"color:#660" class=3D"m_=
54273393621900802m_1947300012370358327m_-7131124157254423451styled-by-prett=
ify">(</span><span style=3D"color:#008" class=3D"m_54273393621900802m_19473=
00012370358327m_-7131124157254423451styled-by-prettify">int</span><span sty=
le=3D"color:#000" class=3D"m_54273393621900802m_1947300012370358327m_-71311=
24157254423451styled-by-prettify"> a </span><span style=3D"color:#660" clas=
s=3D"m_54273393621900802m_1947300012370358327m_-7131124157254423451styled-b=
y-prettify">=3D</span><span style=3D"color:#000" class=3D"m_542733936219008=
02m_1947300012370358327m_-7131124157254423451styled-by-prettify"> </span><s=
pan style=3D"color:#066" class=3D"m_54273393621900802m_1947300012370358327m=
_-7131124157254423451styled-by-prettify">1</span><span style=3D"color:#660"=
 class=3D"m_54273393621900802m_1947300012370358327m_-7131124157254423451sty=
led-by-prettify">,</span><span style=3D"color:#000" class=3D"m_542733936219=
00802m_1947300012370358327m_-7131124157254423451styled-by-prettify"> </span=
><span style=3D"color:#008" class=3D"m_54273393621900802m_19473000123703583=
27m_-7131124157254423451styled-by-prettify">int</span><span style=3D"color:=
#000" class=3D"m_54273393621900802m_1947300012370358327m_-71311241572544234=
51styled-by-prettify"> b </span><span style=3D"color:#660" class=3D"m_54273=
393621900802m_1947300012370358327m_-7131124157254423451styled-by-prettify">=
=3D</span><span style=3D"color:#000" class=3D"m_54273393621900802m_19473000=
12370358327m_-7131124157254423451styled-by-prettify"> </span><span style=3D=
"color:#066" class=3D"m_54273393621900802m_1947300012370358327m_-7131124157=
254423451styled-by-prettify">2</span><span style=3D"color:#660" class=3D"m_=
54273393621900802m_1947300012370358327m_-7131124157254423451styled-by-prett=
ify">);</span><span style=3D"color:#000" class=3D"m_54273393621900802m_1947=
300012370358327m_-7131124157254423451styled-by-prettify"><br><br></span><sp=
an style=3D"color:#008" class=3D"m_54273393621900802m_1947300012370358327m_=
-7131124157254423451styled-by-prettify">void</span><span style=3D"color:#00=
0" class=3D"m_54273393621900802m_1947300012370358327m_-7131124157254423451s=
tyled-by-prettify"> bar</span><span style=3D"color:#660" class=3D"m_5427339=
3621900802m_1947300012370358327m_-7131124157254423451styled-by-prettify">()=
</span><span style=3D"color:#000" class=3D"m_54273393621900802m_19473000123=
70358327m_-7131124157254423451styled-by-prettify"><br></span><span style=3D=
"color:#660" class=3D"m_54273393621900802m_1947300012370358327m_-7131124157=
254423451styled-by-prettify">{</span><span style=3D"color:#000" class=3D"m_=
54273393621900802m_1947300012370358327m_-7131124157254423451styled-by-prett=
ify"><br>=C2=A0 foo</span><span style=3D"color:#660" class=3D"m_54273393621=
900802m_1947300012370358327m_-7131124157254423451styled-by-prettify">();</s=
pan><span style=3D"color:#000" class=3D"m_54273393621900802m_19473000123703=
58327m_-7131124157254423451styled-by-prettify"><br>=C2=A0 foo</span><span s=
tyle=3D"color:#660" class=3D"m_54273393621900802m_1947300012370358327m_-713=
1124157254423451styled-by-prettify">(</span><span style=3D"color:#066" clas=
s=3D"m_54273393621900802m_1947300012370358327m_-7131124157254423451styled-b=
y-prettify">3</span><span style=3D"color:#660" class=3D"m_54273393621900802=
m_1947300012370358327m_-7131124157254423451styled-by-prettify">);</span><sp=
an style=3D"color:#000" class=3D"m_54273393621900802m_1947300012370358327m_=
-7131124157254423451styled-by-prettify"><br>=C2=A0 foo</span><span style=3D=
"color:#660" class=3D"m_54273393621900802m_1947300012370358327m_-7131124157=
254423451styled-by-prettify">(</span><span style=3D"color:#066" class=3D"m_=
54273393621900802m_1947300012370358327m_-7131124157254423451styled-by-prett=
ify">1</span><span style=3D"color:#660" class=3D"m_54273393621900802m_19473=
00012370358327m_-7131124157254423451styled-by-prettify">,</span><span style=
=3D"color:#000" class=3D"m_54273393621900802m_1947300012370358327m_-7131124=
157254423451styled-by-prettify"> </span><span style=3D"color:#066" class=3D=
"m_54273393621900802m_1947300012370358327m_-7131124157254423451styled-by-pr=
ettify">4</span><span style=3D"color:#660" class=3D"m_54273393621900802m_19=
47300012370358327m_-7131124157254423451styled-by-prettify">);</span><span s=
tyle=3D"color:#000" class=3D"m_54273393621900802m_1947300012370358327m_-713=
1124157254423451styled-by-prettify"><br></span><span style=3D"color:#660" c=
lass=3D"m_54273393621900802m_1947300012370358327m_-7131124157254423451style=
d-by-prettify">}</span><span style=3D"color:#000" class=3D"m_54273393621900=
802m_1947300012370358327m_-7131124157254423451styled-by-prettify"><br></spa=
n></div></code></div><br><div>It would be nice, if additionally I could use=
 &quot;default&quot; to take the value from the declaration to not be force=
d to mirror the default value:</div><div><br></div><div style=3D"background=
-color:rgb(250,250,250);border-color:rgb(187,187,187);border-style:solid;bo=
rder-width:1px" class=3D"m_54273393621900802m_1947300012370358327m_-7131124=
157254423451prettyprint"><code class=3D"m_54273393621900802m_19473000123703=
58327m_-7131124157254423451prettyprint"><div class=3D"m_54273393621900802m_=
1947300012370358327m_-7131124157254423451subprettyprint"><span style=3D"col=
or:#008" class=3D"m_54273393621900802m_1947300012370358327m_-71311241572544=
23451styled-by-prettify">void</span><span style=3D"color:#000" class=3D"m_5=
4273393621900802m_1947300012370358327m_-7131124157254423451styled-by-pretti=
fy"> bar</span><span style=3D"color:#660" class=3D"m_54273393621900802m_194=
7300012370358327m_-7131124157254423451styled-by-prettify">()</span><span st=
yle=3D"color:#000" class=3D"m_54273393621900802m_1947300012370358327m_-7131=
124157254423451styled-by-prettify"><br></span><span style=3D"color:#660" cl=
ass=3D"m_54273393621900802m_1947300012370358327m_-7131124157254423451styled=
-by-prettify">{</span><span style=3D"color:#000" class=3D"m_542733936219008=
02m_1947300012370358327m_-7131124157254423451styled-by-prettify"><br>=C2=A0=
 foo</span><span style=3D"color:#660" class=3D"m_54273393621900802m_1947300=
012370358327m_-7131124157254423451styled-by-prettify">(</span><span style=
=3D"color:#008" class=3D"m_54273393621900802m_1947300012370358327m_-7131124=
157254423451styled-by-prettify">default</span><span style=3D"color:#660" cl=
ass=3D"m_54273393621900802m_1947300012370358327m_-7131124157254423451styled=
-by-prettify">,</span><span style=3D"color:#000" class=3D"m_542733936219008=
02m_1947300012370358327m_-7131124157254423451styled-by-prettify"> </span><s=
pan style=3D"color:#066" class=3D"m_54273393621900802m_1947300012370358327m=
_-7131124157254423451styled-by-prettify">4</span><span style=3D"color:#660"=
 class=3D"m_54273393621900802m_1947300012370358327m_-7131124157254423451sty=
led-by-prettify">);</span><span style=3D"color:#000" class=3D"m_54273393621=
900802m_1947300012370358327m_-7131124157254423451styled-by-prettify"><br></=
span><span style=3D"color:#660" class=3D"m_54273393621900802m_1947300012370=
358327m_-7131124157254423451styled-by-prettify">}</span></div></code></div>=
<div><br>All of the information is already available to the compiler so thi=
s should be trivial to add. This makes it easier to use functions with many=
 default parameters, when you are actually only interested in adjusting one=
 of the later ones.<br></div><div><br></div><div>Thoughts?<br></div></div>

<p></p>

-- <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" rel=3D"nore=
ferrer noreferrer" 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" rel=3D"noreferrer noreferrer" target=3D"_blank">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/c6c6f5f5-548f-4543-b394-38d0d22fbd40%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" rel=3D"noreferrer =
noreferrer" target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgi=
d/std-proposals/c6c6f5f5-548f-4543-b394-38d0d22fbd40%40isocpp.org</a>.<br>
</blockquote></div></div></div>

<p></p>

-- <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" rel=3D"nore=
ferrer" 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" rel=3D"noreferrer" target=3D"_blank">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/CAC%2B0CCMsUp4Pnc_TJFMmt0DimkHoy_Us28=
J6zFQ0_%3D2g3NFgxw%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfoo=
ter" rel=3D"noreferrer" target=3D"_blank">https://groups.google.com/a/isocp=
p.org/d/msgid/std-proposals/CAC%2B0CCMsUp4Pnc_TJFMmt0DimkHoy_Us28J6zFQ0_%3D=
2g3NFgxw%40mail.gmail.com</a>.<br>
</blockquote></div></div></div>

<p></p>

-- <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>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAFdMc-1WrjRsqEmwrGEhM-UuQnrADNoEj4aL=
MSVbid0kxWs2gw%40mail.gmail.com?utm_medium=3Demail&amp;utm_source=3Dfooter"=
 target=3D"_blank">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/CAFdMc-1WrjRsqEmwrGEhM-UuQnrADNoEj4aLMSVbid0kxWs2gw%40mail.gmail.com</=
a>.<br>
</blockquote></div>

<p></p>

-- <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 />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAKiZDp3KTr%3DmEk7MRxVA0qLprv9wdRtkv%=
3D0rNO8gkTj552_ZsA%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter"=
>https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAKiZDp3KTr%3=
DmEk7MRxVA0qLprv9wdRtkv%3D0rNO8gkTj552_ZsA%40mail.gmail.com</a>.<br />

--000000000000d6fabb0577858891--

.