Topic: Default values in middle parameters in a function


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Mon, 29 Apr 2013 03:15:28 -0700 (PDT)
Raw View
------=_Part_3792_936000.1367230528048
Content-Type: text/plain; charset=ISO-8859-1

Problem:
Change the default value of a default parameter in a function might result
in a surprising behaviour. The problem is described below.
Consider the following function declaration & definition

//file1.h
void foo(int param, type1 value1 = a1, type2 value2 = b1);

//file1.cpp
#include "file.h"
void foo(int param, type1 value1, type2 value2) {
        //implementation
}

//file2.cpp
#include "file1.h"

void usefoo() {
       foo(0, a1, b2); //i want to pass b2 and hence i am passing the
default value a1 also
}

It is often the case that during the lifecycle of the software the default
value is changed to a2 from a1. This necessitates a change in the function
usefoo(). As there is no compilation error it is very easy to miss this
error. Even if the person knows that it should be changed it is a
cumbersome manual process (change it in all the places) and hence error
prone. This kind of change is not uncommon at all. Days of work gets wasted
due to this.

Solution:
Introduce the default keyword during the function call. The function call
becomes

void usefoo() {
       foo(0, default, b2);
}

Now, no matter what the change in the default value the usefoo function
will not produce any surprise. It might seem that the mirror image of the
problem exists. If a user wants to pass a1 then changing the default value
to a2 will result in a problem. The problem can be solved like this below.

foo(0, default, b2); // if the user wants to pass whatever the default
value is
foo(0, a1, b2);       // if the user wants to pass a1 no matter what the
default value is

Addition of this functionality matches the user intent.

--

---
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/?hl=en.



------=_Part_3792_936000.1367230528048
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>Problem:</div><div>Change the default value of a default parameter in =
a function might result in a surprising behaviour. The problem is described=
 below.</div><div>Consider the following function declaration &amp; definit=
ion</div><div><br></div><div>//file1.h</div>void foo(int param, type1 value=
1 =3D a1, type2 value2 =3D b1);<div><br></div><div>//file1.cpp</div><div>#i=
nclude "file.h"</div><div>void foo(int param, type1 value1, type2 value2) {=
</div><div>&nbsp; &nbsp; &nbsp; &nbsp; //implementation</div><div>}</div><d=
iv><br></div><div>//file2.cpp</div><div>#include "file1.h"</div><div><br></=
div><div>void usefoo() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp;foo(0, a1, b2=
); //i want to pass b2 and hence i am passing the default value a1 also</di=
v><div>}</div><div><br></div><div>It is often the case that during the life=
cycle of the software the default value is changed to a2 from a1. This nece=
ssitates a change in the function usefoo(). As there is no compilation erro=
r it is very easy to miss this error. Even if the person knows that it shou=
ld be changed it is a cumbersome manual process (change it in all the place=
s) and hence error prone. This kind of change is not uncommon at all. Days =
of work gets wasted due to this.</div><div><br></div><div>Solution:</div><d=
iv>Introduce the default keyword during the function call. The function cal=
l becomes</div><div><br></div><div><div>void usefoo() {</div><div>&nbsp; &n=
bsp; &nbsp; &nbsp;foo(0, default, b2);</div><div>}</div></div><div><br></di=
v><div>Now, no matter what the change in the default value the usefoo funct=
ion will not produce any surprise. It might seem that the mirror image of t=
he problem exists. If a user wants to pass a1 then changing the default val=
ue to a2 will result in a problem. The problem can be solved like this belo=
w.</div><div><br></div><div>foo(0, default, b2); // if the user wants to pa=
ss whatever the default value is</div><div>foo(0, a1, b2); &nbsp; &nbsp; &n=
bsp; // if the user wants to pass a1 no matter what the default value is</d=
iv><div><br></div><div>Addition of this functionality matches the user inte=
nt.</div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_3792_936000.1367230528048--

.


Author: Lawrence Crowl <crowl@googlers.com>
Date: Mon, 29 Apr 2013 12:03:15 -0700
Raw View
On 4/29/13, Hariharan Subramanian <tohari@gmail.com> wrote:
> Problem:
> Change the default value of a default parameter in a function might result
> in a surprising behaviour. The problem is described below.
> Consider the following function declaration & definition
>
> //file1.h
> void foo(int param, type1 value1 = a1, type2 value2 = b1);
>
> //file1.cpp
> #include "file.h"
> void foo(int param, type1 value1, type2 value2) {
>         //implementation
> }
>
> //file2.cpp
> #include "file1.h"
>
> void usefoo() {
>        foo(0, a1, b2); //i want to pass b2 and hence i am passing the
> default value a1 also
> }
>
> It is often the case that during the lifecycle of the software the default
> value is changed to a2 from a1. This necessitates a change in the function
> usefoo(). As there is no compilation error it is very easy to miss this
> error. Even if the person knows that it should be changed it is a
> cumbersome manual process (change it in all the places) and hence error
> prone. This kind of change is not uncommon at all. Days of work gets wasted
>
> due to this.
>
> Solution:
> Introduce the default keyword during the function call. The function call
> becomes
>
> void usefoo() {
>        foo(0, default, b2);
> }
>
> Now, no matter what the change in the default value the usefoo function
> will not produce any surprise. It might seem that the mirror image of the
> problem exists. If a user wants to pass a1 then changing the default value
> to a2 will result in a problem. The problem can be solved like this below.
>
> foo(0, default, b2); // if the user wants to pass whatever the default
> value is
> foo(0, a1, b2);       // if the user wants to pass a1 no matter what the
> default value is
>
> Addition of this functionality matches the user intent.

Default parameters can vary between translation units, which is
not good for code clarity.  They can also cause address-of-function
problems and binary compatibility problems.  An overload set is a
significantly better approach to the problems that default parameters
solve.  I would rather the user wrote function overloads to handle
the various cases.  Mostly, you can do this in an API-compatible
manner.  So, rather than extend a flawed feature, I would rather say
"do not do that".

--
Lawrence Crowl

--

---
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/?hl=en.



.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Tue, 30 Apr 2013 11:02:40 +0530
Raw View
--089e0158c76c79501f04db8d54a7
Content-Type: text/plain; charset=ISO-8859-1

> Default parameters can vary between translation units, which is
> not good for code clarity.  They can also cause address-of-function
> problems and binary compatibility problems.  An overload set is a
> significantly better approach to the problems that default parameters
> solve.  I would rather the user wrote function overloads to handle
> the various cases.  Mostly, you can do this in an API-compatible
> manner.  So, rather than extend a flawed feature, I would rather say
> "do not do that".
>

Default parameters are a reality and used extensively. Instead of making a
"flawed feature" difficult to work with it makes this "flawed feature"
easier to work with.

--

---
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/?hl=en.



--089e0158c76c79501f04db8d54a7
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><div class=3D"gmail_quote">=
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Default parameters can vary between translat=
ion units, which is<br>

not good for code clarity. =A0They can also cause address-of-function<br>
problems and binary compatibility problems. =A0An overload set is a<br>
significantly better approach to the problems that default parameters<br>
solve. =A0I would rather the user wrote function overloads to handle<br>
the various cases. =A0Mostly, you can do this in an API-compatible<br>
manner. =A0So, rather than extend a flawed feature, I would rather say<br>
&quot;do not do that&quot;.<br></blockquote><div><br></div><div style>Defau=
lt parameters are a reality and used extensively. Instead of making a &quot=
;flawed feature&quot; difficult to work with it makes this &quot;flawed fea=
ture&quot; easier to work with.=A0</div>
</div></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--089e0158c76c79501f04db8d54a7--

.


Author: Nicol Bolas <jmckesson@gmail.com>
Date: Mon, 29 Apr 2013 23:43:50 -0700 (PDT)
Raw View
------=_Part_1230_30249893.1367304230614
Content-Type: text/plain; charset=ISO-8859-1

On Monday, April 29, 2013 10:32:40 PM UTC-7, Hariharan Subramanian wrote:
>
> Default parameters can vary between translation units, which is
>> not good for code clarity.  They can also cause address-of-function
>> problems and binary compatibility problems.  An overload set is a
>> significantly better approach to the problems that default parameters
>> solve.  I would rather the user wrote function overloads to handle
>> the various cases.  Mostly, you can do this in an API-compatible
>> manner.  So, rather than extend a flawed feature, I would rather say
>> "do not do that".
>>
>
> Default parameters are a reality and used extensively. Instead of making a
> "flawed feature" difficult to work with it makes this "flawed feature"
> easier to work with.
>

Personally, I don't think that default parameters are a "flawed feature".
That being said, the flaws discussed are *not* resolved by your suggestion.

Default parameters solve a simple, very specific problem. Function
overloading solves a larger, more general problem. I like that we have
both. And I think that the problem that you intend to solve, with some kind
of "default" parameter, is best solved with the larger, more general
solution.

Also, with `optional`:

void foo(int param, optional<type1> value1, optional<type2> value2) {
  type1 val1 = value1.value_or(a1);
  type2 val2 = value2.value_or(a2);
  //implementation
}

void usefoo() {
       foo(0, nullopt, b2);
}

That seems to take care of the problem.

--

---
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/?hl=en.



------=_Part_1230_30249893.1367304230614
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On Monday, April 29, 2013 10:32:40 PM UTC-7, Hariharan Subramanian wrote:<b=
lockquote 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><div class=
=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex">Default parameters can vary=
 between translation units, which is<br>

not good for code clarity. &nbsp;They can also cause address-of-function<br=
>
problems and binary compatibility problems. &nbsp;An overload set is a<br>
significantly better approach to the problems that default parameters<br>
solve. &nbsp;I would rather the user wrote function overloads to handle<br>
the various cases. &nbsp;Mostly, you can do this in an API-compatible<br>
manner. &nbsp;So, rather than extend a flawed feature, I would rather say<b=
r>
"do not do that".<br></blockquote><div><br></div><div>Default parameters ar=
e a reality and used extensively. Instead of making a "flawed feature" diff=
icult to work with it makes this "flawed feature" easier to work with.&nbsp=
;</div></div></div></div></blockquote><div><br>Personally, I don't think th=
at default parameters are a "flawed feature". That being said, the flaws di=
scussed are <i>not</i> resolved by your suggestion.<br><br>Default paramete=
rs solve a simple, very specific problem. Function overloading solves a lar=
ger, more general problem. I like that we have both. And I think that the p=
roblem that you intend to solve, with some kind of "default" parameter, is =
best solved with the larger, more general solution.<br><br>Also, with `opti=
onal`:<br><br><div class=3D"prettyprint" style=3D"background-color: rgb(250=
, 250, 250); border-color: rgb(187, 187, 187); border-style: solid; border-=
width: 1px; word-wrap: break-word;"><code class=3D"prettyprint"><div class=
=3D"subprettyprint"><span style=3D"color: #008;" class=3D"styled-by-prettif=
y">void</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> fo=
o</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><=
span style=3D"color: #008;" class=3D"styled-by-prettify">int</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> param</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> optional</span><span style=3D"color:=
 #080;" class=3D"styled-by-prettify">&lt;type1&gt;</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> value1</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> optional</span><span style=3D"color: #080;" cl=
ass=3D"styled-by-prettify">&lt;type2&gt;</span><span style=3D"color: #000;"=
 class=3D"styled-by-prettify"> value2</span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">)</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">{</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
<br>&nbsp; type1 val1 </span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-prett=
ify"> value1</span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">.</span><span style=3D"color: #000;" class=3D"styled-by-prettify">value_o=
r</span><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify">a1</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">);</span><span style=3D"co=
lor: #000;" class=3D"styled-by-prettify"><br>&nbsp; type2 val2 </span><span=
 style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><span style=
=3D"color: #000;" class=3D"styled-by-prettify"> value2</span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">.</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify">value_or</span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify">a2</span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">);</span><span style=3D"color: #000;" class=3D"styled-by-pr=
ettify"><br>&nbsp; </span><span style=3D"color: #800;" class=3D"styled-by-p=
rettify">//implementation</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"><br></span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">}</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
<br><br></span><span style=3D"color: #008;" class=3D"styled-by-prettify">vo=
id</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> usefoo<=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">()</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">{</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"><br>&nbsp; &nbsp; &nbsp; &nbsp;foo</s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">(</span><span=
 style=3D"color: #066;" class=3D"styled-by-prettify">0</span><span style=3D=
"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> nullopt</span><span style=3D"color: #66=
0;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"> b2</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">);</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"><br></span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">}</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></=
span></div></code></div><br>That seems to take care of the problem.<br></di=
v>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_1230_30249893.1367304230614--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Tue, 30 Apr 2013 13:27:07 +0530
Raw View
--089e014939480adb8b04db8f5932
Content-Type: text/plain; charset=ISO-8859-1

> Personally, I don't think that default parameters are a "flawed feature".
> That being said, the flaws discussed are *not* resolved by your
> suggestion.
>
> Default parameters solve a simple, very specific problem. Function
> overloading solves a larger, more general problem. I like that we have
> both. And I think that the problem that you intend to solve, with some kind
> of "default" parameter, is best solved with the larger, more general
> solution.
>
> Also, with `optional`:
>
> void foo(int param, optional<type1> value1, optional<type2> value2) {
>   type1 val1 = value1.value_or(a1);
>   type2 val2 = value2.value_or(a2);
>   //implementation
> }
>
> void usefoo() {
>        foo(0, nullopt, b2);
> }
>
> That seems to take care of the problem.
>
>
This does not work.

//foo.h
void foo(int a, type1 param1, type2 param2 = value2);

//foo.cpp
void foo(int a, type1 param1, type2 param2) {
   //Is param1 value1 or value3?
}

//usefoo1.cpp
void foo(int a, type1 param1 = value1, type2 param2);
void usefoo1() {
     foo(1);
}

//usefoo2.cpp
void foo(int a, type1 param1 = value3, type2 param2);
void usefoo2() {
     foo(1);
}

From the above example it is clear that the caller decides the default
values with the function based on the latest declaration that is available
to it. So foo() cannot decide the default values.

Regarding the Lawrence' comment that default parameters being unnecessary:
We need to define as many overloaded functions as the number of default
parameters. Besides it will be hidden in the source and will not be
available if only the headers are available.

--

---
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/?hl=en.



--089e014939480adb8b04db8f5932
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><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-left-style:solid;p=
adding-left:1ex">
<div>Personally, I don&#39;t think that default parameters are a &quot;flaw=
ed feature&quot;. That being said, the flaws discussed are <i>not</i> resol=
ved by your suggestion.<br><br>Default parameters solve a simple, very spec=
ific problem. Function overloading solves a larger, more general problem. I=
 like that we have both. And I think that the problem that you intend to so=
lve, with some kind of &quot;default&quot; parameter, is best solved with t=
he larger, more general solution.<br>
<br>Also, with `optional`:<br><br><div style=3D"background-color:rgb(250,25=
0,250);border:1px solid rgb(187,187,187);word-wrap:break-word"><code><div><=
span style=3D"color:rgb(0,0,136)">void</span><span style> foo</span><span s=
tyle=3D"color:rgb(102,102,0)">(</span><span style=3D"color:rgb(0,0,136)">in=
t</span><span style> param</span><span style=3D"color:rgb(102,102,0)">,</sp=
an><span style> optional</span><span style=3D"color:rgb(0,136,0)">&lt;type1=
&gt;</span><span style> value1</span><span style=3D"color:rgb(102,102,0)">,=
</span><span style> optional</span><span style=3D"color:rgb(0,136,0)">&lt;t=
ype2&gt;</span><span style> value2</span><span style=3D"color:rgb(102,102,0=
)">)</span><span style> </span><span style=3D"color:rgb(102,102,0)">{</span=
><span style><br>
=A0 type1 val1 </span><span style=3D"color:rgb(102,102,0)">=3D</span><span =
style> value1</span><span style=3D"color:rgb(102,102,0)">.</span><span styl=
e>value_or</span><span style=3D"color:rgb(102,102,0)">(</span><span style>a=
1</span><span style=3D"color:rgb(102,102,0)">);</span><span style><br>
=A0 type2 val2 </span><span style=3D"color:rgb(102,102,0)">=3D</span><span =
style> value2</span><span style=3D"color:rgb(102,102,0)">.</span><span styl=
e>value_or</span><span style=3D"color:rgb(102,102,0)">(</span><span style>a=
2</span><span style=3D"color:rgb(102,102,0)">);</span><span style><br>
=A0 </span><span style=3D"color:rgb(136,0,0)">//implementation</span><span =
style><br></span><span style=3D"color:rgb(102,102,0)">}</span><span style><=
br><br></span><span style=3D"color:rgb(0,0,136)">void</span><span style> us=
efoo</span><span style=3D"color:rgb(102,102,0)">()</span><span style> </spa=
n><span style=3D"color:rgb(102,102,0)">{</span><span style><br>
=A0 =A0 =A0 =A0foo</span><span style=3D"color:rgb(102,102,0)">(</span><span=
 style=3D"color:rgb(0,102,102)">0</span><span style=3D"color:rgb(102,102,0)=
">,</span><span style> nullopt</span><span style=3D"color:rgb(102,102,0)">,=
</span><span style> b2</span><span style=3D"color:rgb(102,102,0)">);</span>=
<span style><br>
</span><span style=3D"color:rgb(102,102,0)">}</span><span style><br></span>=
</div></code></div><br>That seems to take care of the problem.<br></div><di=
v class=3D""><div class=3D"h5">

<p></p></div></div></blockquote></div><br></div><div class=3D"gmail_extra" =
style>This does not work.</div><div class=3D"gmail_extra" style><br></div><=
div class=3D"gmail_extra" style>//foo.h</div><div class=3D"gmail_extra" sty=
le>
void foo(int a, type1 param1, type2 param2 =3D value2);<br></div><div class=
=3D"gmail_extra" style><br></div><div class=3D"gmail_extra">//foo.cpp</div>=
<div class=3D"gmail_extra"><div class=3D"gmail_extra">void foo(int a, type1=
 param1, type2 param2) {<br>
</div><div class=3D"gmail_extra" style>=A0 =A0//Is param1 value1 or value3?=
</div><div>}</div><div><br></div></div><div>//usefoo1.cpp</div><div>void fo=
o(int a, type1 param1 =3D value1, type2 param2);<br></div><div><div class=
=3D"gmail_extra">
void usefoo1() {<br></div><div class=3D"gmail_extra">=A0 =A0 =A0foo(1);</di=
v><div class=3D"gmail_extra">}</div></div><div class=3D"gmail_extra" style>=
<br></div><div class=3D"gmail_extra" style>//usefoo2.cpp<br></div><div clas=
s=3D"gmail_extra" style>
<div style>void foo(int a, type1 param1 =3D value3, type2 param2);<br></div=
><div style><div class=3D"gmail_extra">void usefoo2() {<br></div><div class=
=3D"gmail_extra" style>=A0 =A0 =A0foo(1);</div><div class=3D"gmail_extra" s=
tyle>}</div>
<div><br></div><div style>From the above example it is clear that the calle=
r decides the default values with the function based on the latest declarat=
ion that is available to it. So foo() cannot decide the default values.</di=
v>
<div style><br></div><div style>Regarding the Lawrence&#39; comment that de=
fault parameters being unnecessary: We need to define as many overloaded fu=
nctions as the number of default parameters. Besides it will be hidden in t=
he source and will not be available if only the headers are available.</div=
>
</div></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--089e014939480adb8b04db8f5932--

.


Author: Nicol Bolas <jmckesson@gmail.com>
Date: Tue, 30 Apr 2013 02:41:40 -0700 (PDT)
Raw View
------=_Part_3196_24472530.1367314900872
Content-Type: text/plain; charset=ISO-8859-1

On Tuesday, April 30, 2013 12:57:07 AM UTC-7, Hariharan Subramanian wrote:
>
> Personally, I don't think that default parameters are a "flawed feature".
>> That being said, the flaws discussed are *not* resolved by your
>> suggestion.
>>
>> Default parameters solve a simple, very specific problem. Function
>> overloading solves a larger, more general problem. I like that we have
>> both. And I think that the problem that you intend to solve, with some kind
>> of "default" parameter, is best solved with the larger, more general
>> solution.
>>
>> Also, with `optional`:
>>
>> void foo(int param, optional<type1> value1, optional<type2> value2) {
>>   type1 val1 = value1.value_or(a1);
>>   type2 val2 = value2.value_or(a2);
>>   //implementation
>> }
>>
>> void usefoo() {
>>        foo(0, nullopt, b2);
>> }
>>
>> That seems to take care of the problem.
>>
>>
> This does not work.
>
//foo.h
> void foo(int a, type1 param1, type2 param2 = value2);
>
> //foo.cpp
> void foo(int a, type1 param1, type2 param2) {
>    //Is param1 value1 or value3?
> }
>
> //usefoo1.cpp
> void foo(int a, type1 param1 = value1, type2 param2);
> void usefoo1() {
>      foo(1);
> }
>
> //usefoo2.cpp
> void foo(int a, type1 param1 = value3, type2 param2);
> void usefoo2() {
>      foo(1);
> }
>

Yes, that doesn't work. I agree. *And it should never work.*

Re-declaring functions with different default parameters is a *horrible idea
*. Default parameters should be considered part of a function's interface.

What you're trying to do is a wrong thing. Default parameters are a tool
for the person implementing the function, not for person *calling* it. If
you want to have some helper function in a source file that uses other
defaults that are local to that source file, the declare a helper function
that fills in the default for you:

//foo.h
void foo(int a, type1 param1, type2 param2 = value2);
//foo.cpp
void foo(int a, type1 param1, type2 param2) {
   //Is param1 value1 or value3?
}
//usefoo1.cpp
static void usefoo1() {
     foo(1, value1);
}
//usefoo2.cpp
static void usefoo2() {
     foo(1, value3);
}

See? That wasn't hard. Your default parameters are there, and any compiler
worth using will likely inline them for you.

The C++ committee ought not add features to support this usage pattern for
default parameters.

--

---
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/?hl=en.



------=_Part_3196_24472530.1367314900872
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 30, 2013 12:57:07 AM UTC-7, Hariharan Subramanian wrote:<=
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"><div><div clas=
s=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>Personally, I don't think that default parameters are a "flawed featur=
e". That being said, the flaws discussed are <i>not</i> resolved by your su=
ggestion.<br><br>Default parameters solve a simple, very specific problem. =
Function overloading solves a larger, more general problem. I like that we =
have both. And I think that the problem that you intend to solve, with some=
 kind of "default" parameter, is best solved with the larger, more general =
solution.<br>
<br>Also, with `optional`:<br><br><div style=3D"background-color:rgb(250,25=
0,250);border:1px solid rgb(187,187,187);word-wrap:break-word"><code><div><=
span style=3D"color:rgb(0,0,136)">void</span><span> foo</span><span style=
=3D"color:rgb(102,102,0)">(</span><span style=3D"color:rgb(0,0,136)">int</s=
pan><span> param</span><span style=3D"color:rgb(102,102,0)">,</span><span> =
optional</span><span style=3D"color:rgb(0,136,0)">&lt;type1&gt;</span><span=
> value1</span><span style=3D"color:rgb(102,102,0)">,</span><span> optional=
</span><span style=3D"color:rgb(0,136,0)">&lt;type2&gt;</span><span> value2=
</span><span style=3D"color:rgb(102,102,0)">)</span><span> </span><span sty=
le=3D"color:rgb(102,102,0)">{</span><span><br>
&nbsp; type1 val1 </span><span style=3D"color:rgb(102,102,0)">=3D</span><sp=
an> value1</span><span style=3D"color:rgb(102,102,0)">.</span><span>value_o=
r</span><span style=3D"color:rgb(102,102,0)">(</span><span>a1</span><span s=
tyle=3D"color:rgb(102,102,0)">);</span><span><br>
&nbsp; type2 val2 </span><span style=3D"color:rgb(102,102,0)">=3D</span><sp=
an> value2</span><span style=3D"color:rgb(102,102,0)">.</span><span>value_o=
r</span><span style=3D"color:rgb(102,102,0)">(</span><span>a2</span><span s=
tyle=3D"color:rgb(102,102,0)">);</span><span><br>
&nbsp; </span><span style=3D"color:rgb(136,0,0)">//implementation</span><sp=
an><br></span><span style=3D"color:rgb(102,102,0)">}</span><span><br><br></=
span><span style=3D"color:rgb(0,0,136)">void</span><span> usefoo</span><spa=
n style=3D"color:rgb(102,102,0)">()</span><span> </span><span style=3D"colo=
r:rgb(102,102,0)">{</span><span><br>
&nbsp; &nbsp; &nbsp; &nbsp;foo</span><span style=3D"color:rgb(102,102,0)">(=
</span><span style=3D"color:rgb(0,102,102)">0</span><span style=3D"color:rg=
b(102,102,0)">,</span><span> nullopt</span><span style=3D"color:rgb(102,102=
,0)">,</span><span> b2</span><span style=3D"color:rgb(102,102,0)">);</span>=
<span><br>
</span><span style=3D"color:rgb(102,102,0)">}</span><span><br></span></div>=
</code></div><br>That seems to take care of the problem.<br></div><div><div=
>

<p></p></div></div></blockquote></div><br></div><div>This does not work.</d=
iv></div></blockquote><div></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><div>//foo.h</div><div>
void foo(int a, type1 param1, type2 param2 =3D value2);<br></div><div><br><=
/div><div>//foo.cpp</div><div><div>void foo(int a, type1 param1, type2 para=
m2) {<br>
</div><div>&nbsp; &nbsp;//Is param1 value1 or value3?</div><div>}</div><div=
><br></div></div><div>//usefoo1.cpp</div><div>void foo(int a, type1 param1 =
=3D value1, type2 param2);<br></div><div><div>
void usefoo1() {<br></div><div>&nbsp; &nbsp; &nbsp;foo(1);</div><div>}</div=
></div><div><br></div><div>//usefoo2.cpp<br></div><div>
<div>void foo(int a, type1 param1 =3D value3, type2 param2);<br></div><div>=
<div>void usefoo2() {<br></div><div>&nbsp; &nbsp; &nbsp;foo(1);</div><div>}=
</div></div></div></div></blockquote><div><br>Yes, that doesn't work. I agr=
ee. <i>And it should never work.</i><br><br>Re-declaring functions with dif=
ferent default parameters is a <i>horrible idea</i>. Default parameters sho=
uld be considered part of a function's interface.<br><br>What
 you're trying to do is a wrong thing. Default parameters are a tool for th=
e person implementing the function, not for person <i>calling</i> it. If yo=
u want to have some helper=20
function in a source file that uses other defaults that are local to that s=
ource file, the declare a helper function that fills in the default for you=
:<br><br><div class=3D"prettyprint" style=3D"background-color: rgb(250, 250=
, 250); border-color: rgb(187, 187, 187); border-style: solid; border-width=
: 1px; word-wrap: break-word;"><code class=3D"prettyprint"><div class=3D"su=
bprettyprint"><span style=3D"color: #800;" class=3D"styled-by-prettify">//f=
oo.h</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></=
span><span style=3D"color: #008;" class=3D"styled-by-prettify">void</span><=
span style=3D"color: #000;" class=3D"styled-by-prettify"> foo</span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"c=
olor: #008;" class=3D"styled-by-prettify">int</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> a</span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"> type1 param1</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"styled-b=
y-prettify"> type2 param2 </span><span style=3D"color: #660;" class=3D"styl=
ed-by-prettify">=3D</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> value2</span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">);</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><b=
r></span><span style=3D"color: #800;" class=3D"styled-by-prettify">//foo.cp=
p</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></spa=
n><span style=3D"color: #008;" class=3D"styled-by-prettify">void</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"> foo</span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"colo=
r: #008;" class=3D"styled-by-prettify">int</span><span style=3D"color: #000=
;" class=3D"styled-by-prettify"> a</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> type1 param1</span><span style=3D"color: #660;" class=3D"st=
yled-by-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by-p=
rettify"> type2 param2</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">)</span><span style=3D"color: #000;" class=3D"styled-by-prettif=
y"> </span><span style=3D"color: #660;" class=3D"styled-by-prettify">{</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>&nbsp; &nbs=
p;</span><span style=3D"color: #800;" class=3D"styled-by-prettify">//Is par=
am1 value1 or value3?</span><span style=3D"color: #000;" class=3D"styled-by=
-prettify"><br></span><span style=3D"color: #660;" class=3D"styled-by-prett=
ify">}</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br>=
</span><span style=3D"color: #800;" class=3D"styled-by-prettify">//usefoo1.=
cpp</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br></s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">static</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #008;" class=3D"styled-by-prettify">void</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"> usefoo1</span><span style=3D"co=
lor: #660;" class=3D"styled-by-prettify">()</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">{</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"><br>&nbsp; &nbsp; &nbsp;foo</span><span style=3D"color: #660=
;" class=3D"styled-by-prettify">(</span><span style=3D"color: #066;" class=
=3D"styled-by-prettify">1</span><span style=3D"color: #660;" class=3D"style=
d-by-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> value1</span><span style=3D"color: #660;" class=3D"styled-by-prettif=
y">);</span><span style=3D"color: #000;" class=3D"styled-by-prettify"><br><=
/span><span style=3D"color: #660;" class=3D"styled-by-prettify">}</span><sp=
an style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span sty=
le=3D"color: #800;" class=3D"styled-by-prettify">//usefoo2.cpp</span><span =
style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span style=
=3D"color: #008;" class=3D"styled-by-prettify">static</span><span style=3D"=
color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #0=
08;" class=3D"styled-by-prettify">void</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> usefoo2</span><span style=3D"color: #660;" cla=
ss=3D"styled-by-prettify">()</span><span style=3D"color: #000;" class=3D"st=
yled-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">{</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
<br>&nbsp; &nbsp; &nbsp;foo</span><span style=3D"color: #660;" class=3D"sty=
led-by-prettify">(</span><span style=3D"color: #066;" class=3D"styled-by-pr=
ettify">1</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> value3</s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">);</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"><br></span><span styl=
e=3D"color: #660;" class=3D"styled-by-prettify">}</span><span style=3D"colo=
r: #000;" class=3D"styled-by-prettify"><br></span></div></code></div><br>Se=
e? That wasn't hard. Your default parameters are there, and any compiler wo=
rth using will likely inline them for you.<br><br>The C++ committee ought n=
ot add features to support this usage pattern for default parameters.</div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_3196_24472530.1367314900872--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Tue, 30 Apr 2013 16:36:45 +0530
Raw View
--001a11c26804356b2204db91ff89
Content-Type: text/plain; charset=ISO-8859-1

> Yes, that doesn't work. I agree. *And it should never work.*
>
> Re-declaring functions with different default parameters is a *horrible
> idea*. Default parameters should be considered part of a function's
> interface.
>
> I personally do not like to re-declare functions like that. But it's the
choice of the individual.


> What you're trying to do is a wrong thing. Default parameters are a tool
> for the person implementing the function, not for person *calling* it. If
> you want to have some helper function in a source file that uses other
> defaults that are local to that source file, the declare a helper function
> that fills in the default for you:
>

I just pointed out that solution proposed in your previous email does not
work in that case. There are lot of existing APIs which do not follow your
solution and they will be difficult to use. Whereas using default middle
parameter makes it easy to use.


>
> //foo.h
> void foo(int a, type1 param1, type2 param2 = value2);
> //foo.cpp
> void foo(int a, type1 param1, type2 param2) {
>    //Is param1 value1 or value3?
> }
> //usefoo1.cpp
> static void usefoo1() {
>      foo(1, value1);
> }
> //usefoo2.cpp
> static void usefoo2() {
>      foo(1, value3);
> }
>
> See? That wasn't hard. Your default parameters are there, and any compiler
> worth using will likely inline them for you.
>
> The C++ committee ought not add features to support this usage pattern for
> default parameters.
>
> Default middle parameter proposal neither encourages nor discourages such
usage pattern. If such a pattern should not be supported then that should
be deprecated and removed subsequently instead of allowing the users to do
it and also making it difficult to do it. The use case for this proposal is
not this re-declaration case. It is just that it makes it easy to use that
function.
void foo(int a, type1 param1 = value1, type2 param2 = value2);
Assume that 50% of the users set param1 to value3 and want default value
for param2 and the rest set param2 to value4 and want default value for
param1. Because of the order of the declaration of parameters only 50% of
the users will find it easier to use. The other 50% will not find it easier
to use. It makes it easy for all to use. Any change in the default value
will be automatically taken care of. Otherwise such a change forces a
change everywhere which is cumbersome and error prone.

Regards,
Hariharan S

--

---
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/?hl=en.



--001a11c26804356b2204db91ff89
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><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-left-style:solid;p=
adding-left:1ex">
<div>Yes, that doesn&#39;t work. I agree. <i>And it should never work.</i><=
br><br>Re-declaring functions with different default parameters is a <i>hor=
rible idea</i>. Default parameters should be considered part of a function&=
#39;s interface.<br>
<br></div></blockquote><div>I personally do not like to re-declare function=
s like that. But it&#39;s the choice of the individual.=A0</div><div>=A0</d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:soli=
d;padding-left:1ex">
<div>What
 you&#39;re trying to do is a wrong thing. Default parameters are a tool fo=
r the person implementing the function, not for person <i>calling</i> it. I=
f you want to have some helper=20
function in a source file that uses other defaults that are local to that s=
ource file, the declare a helper function that fills in the default for you=
:<br></div></blockquote><div style><br></div><div style>I just pointed out =
that solution proposed in your previous email does not work in that case. T=
here are lot of existing APIs which do not follow your solution and they wi=
ll be difficult to use. Whereas using default middle parameter makes it eas=
y to use.</div>
<div style>=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);borde=
r-left-style:solid;padding-left:1ex"><div><br><div style=3D"background-colo=
r:rgb(250,250,250);border:1px solid rgb(187,187,187);word-wrap:break-word">
<code><div><div class=3D"im"><span style=3D"color:rgb(136,0,0)">//foo.h</sp=
an><span style><br></span><span style=3D"color:rgb(0,0,136)">void</span><sp=
an style> foo</span><span style=3D"color:rgb(102,102,0)">(</span><span styl=
e=3D"color:rgb(0,0,136)">int</span><span style> a</span><span style=3D"colo=
r:rgb(102,102,0)">,</span><span style> type1 param1</span><span style=3D"co=
lor:rgb(102,102,0)">,</span><span style> type2 param2 </span><span style=3D=
"color:rgb(102,102,0)">=3D</span><span style> value2</span><span style=3D"c=
olor:rgb(102,102,0)">);</span><span style><br>
</span><span style=3D"color:rgb(136,0,0)">//foo.cpp</span><span style><br><=
/span><span style=3D"color:rgb(0,0,136)">void</span><span style> foo</span>=
<span style=3D"color:rgb(102,102,0)">(</span><span style=3D"color:rgb(0,0,1=
36)">int</span><span style> a</span><span style=3D"color:rgb(102,102,0)">,<=
/span><span style> type1 param1</span><span style=3D"color:rgb(102,102,0)">=
,</span><span style> type2 param2</span><span style=3D"color:rgb(102,102,0)=
">)</span><span style> </span><span style=3D"color:rgb(102,102,0)">{</span>=
<span style><br>
=A0 =A0</span><span style=3D"color:rgb(136,0,0)">//Is param1 value1 or valu=
e3?</span><span style><br></span><span style=3D"color:rgb(102,102,0)">}</sp=
an><span style><br></span><span style=3D"color:rgb(136,0,0)">//usefoo1.cpp<=
/span><span style><br>
</span></div><span style=3D"color:rgb(0,0,136)">static</span><span style> <=
/span><span style=3D"color:rgb(0,0,136)">void</span><span style> usefoo1</s=
pan><span style=3D"color:rgb(102,102,0)">()</span><span style> </span><span=
 style=3D"color:rgb(102,102,0)">{</span><span style><br>
=A0 =A0 =A0foo</span><span style=3D"color:rgb(102,102,0)">(</span><span sty=
le=3D"color:rgb(0,102,102)">1</span><span style=3D"color:rgb(102,102,0)">,<=
/span><span style> value1</span><span style=3D"color:rgb(102,102,0)">);</sp=
an><span style><br>
</span><span style=3D"color:rgb(102,102,0)">}</span><span style><br></span>=
<span style=3D"color:rgb(136,0,0)">//usefoo2.cpp</span><span style><br></sp=
an><span style=3D"color:rgb(0,0,136)">static</span><span style> </span><spa=
n style=3D"color:rgb(0,0,136)">void</span><span style> usefoo2</span><span =
style=3D"color:rgb(102,102,0)">()</span><span style> </span><span style=3D"=
color:rgb(102,102,0)">{</span><span style><br>
=A0 =A0 =A0foo</span><span style=3D"color:rgb(102,102,0)">(</span><span sty=
le=3D"color:rgb(0,102,102)">1</span><span style=3D"color:rgb(102,102,0)">,<=
/span><span style> value3</span><span style=3D"color:rgb(102,102,0)">);</sp=
an><span style><br>
</span><span style=3D"color:rgb(102,102,0)">}</span><span style><br></span>=
</div></code></div><br>See? That wasn&#39;t hard. Your default parameters a=
re there, and any compiler worth using will likely inline them for you.<br>
<br>The C++ committee ought not add features to support this usage pattern =
for default parameters.</div><div class=3D""><div class=3D"h5">

<p></p></div></div></blockquote></div>Default middle parameter proposal nei=
ther encourages nor discourages such usage pattern. If such a pattern shoul=
d not be supported then that should be deprecated and removed subsequently =
instead of allowing the users to do it and also making it difficult to do i=
t. The use case for this proposal is not this re-declaration case. It is ju=
st that it makes it easy to use that function.</div>
<div class=3D"gmail_extra" style>void foo(int a, type1 param1 =3D value1, t=
ype2 param2 =3D value2);</div><div class=3D"gmail_extra">Assume that 50% of=
 the users set param1 to value3 and want default value for param2 and the r=
est set param2 to value4 and want default value for param1. Because of the =
order of the declaration of parameters only 50% of the users will find it e=
asier to use. The other 50% will not find it easier to use. It makes it eas=
y for all to use. Any change in the default value will be automatically tak=
en care of. Otherwise such a change forces a change everywhere which is cum=
bersome and error prone.</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra" style>Regar=
ds,</div><div class=3D"gmail_extra" style>Hariharan S<br><br></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--001a11c26804356b2204db91ff89--

.


Author: Vincent Jacquet <vjacquet@flowgroup.fr>
Date: Tue, 30 Apr 2013 05:10:46 -0700 (PDT)
Raw View
------=_Part_4253_18199150.1367323846713
Content-Type: text/plain; charset=ISO-8859-1

I don't agree that default parameters are a tool for the person
implementing the function. They are a tool for the person calling it. You
could add default parameters to a function without changing a line of its
implementation. It does not make the implementation easier (other than
ensuring that the parameter is always defined), it makes the calling more
convenient.

This also why I do not like the idea of using optional in place of default
parameters. With optional, you hide the default value and you resolve it at
runtime instead of compile time. You could change the value used as default
and I would never know. By doing so, you might even break my code.
Providing several overrides also hides the default parameters value, so it
is almost the same but without the runtime penalty.

Best regards,
Vincent

On Tuesday, April 30, 2013 11:41:40 AM UTC+2, Nicol Bolas wrote:
>
> On Tuesday, April 30, 2013 12:57:07 AM UTC-7, Hariharan Subramanian wrote:
>>
>> Personally, I don't think that default parameters are a "flawed feature".
>>> That being said, the flaws discussed are *not* resolved by your
>>> suggestion.
>>>
>>> Default parameters solve a simple, very specific problem. Function
>>> overloading solves a larger, more general problem. I like that we have
>>> both. And I think that the problem that you intend to solve, with some kind
>>> of "default" parameter, is best solved with the larger, more general
>>> solution.
>>>
>>> Also, with `optional`:
>>>
>>> void foo(int param, optional<type1> value1, optional<type2> value2) {
>>>   type1 val1 = value1.value_or(a1);
>>>   type2 val2 = value2.value_or(a2);
>>>   //implementation
>>> }
>>>
>>> void usefoo() {
>>>        foo(0, nullopt, b2);
>>> }
>>>
>>> That seems to take care of the problem.
>>>
>>>
>> This does not work.
>>
> //foo.h
>> void foo(int a, type1 param1, type2 param2 = value2);
>>
>> //foo.cpp
>> void foo(int a, type1 param1, type2 param2) {
>>    //Is param1 value1 or value3?
>> }
>>
>> //usefoo1.cpp
>> void foo(int a, type1 param1 = value1, type2 param2);
>> void usefoo1() {
>>      foo(1);
>> }
>>
>> //usefoo2.cpp
>> void foo(int a, type1 param1 = value3, type2 param2);
>> void usefoo2() {
>>      foo(1);
>> }
>>
>
> Yes, that doesn't work. I agree. *And it should never work.*
>
> Re-declaring functions with different default parameters is a *horrible
> idea*. Default parameters should be considered part of a function's
> interface.
>
> What you're trying to do is a wrong thing. Default parameters are a tool
> for the person implementing the function, not for person *calling* it. If
> you want to have some helper function in a source file that uses other
> defaults that are local to that source file, the declare a helper function
> that fills in the default for you:
>
> //foo.h
> void foo(int a, type1 param1, type2 param2 = value2);
> //foo.cpp
> void foo(int a, type1 param1, type2 param2) {
>    //Is param1 value1 or value3?
> }
> //usefoo1.cpp
> static void usefoo1() {
>      foo(1, value1);
> }
> //usefoo2.cpp
> static void usefoo2() {
>      foo(1, value3);
> }
>
> See? That wasn't hard. Your default parameters are there, and any compiler
> worth using will likely inline them for you.
>
> The C++ committee ought not add features to support this usage pattern for
> default parameters.
>

--

---
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/?hl=en.



------=_Part_4253_18199150.1367323846713
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

I don't agree that default parameters are a tool for the person implementin=
g the function. They are a tool for the person calling it. You could add de=
fault parameters to a function without changing a line of its implementatio=
n. It does not make the implementation easier (other than ensuring that the=
 parameter is always defined), it makes the calling more convenient.<div><b=
r></div><div>This also why I do not like the idea of using optional in plac=
e of default parameters. With optional, you hide the default value and you =
resolve it at runtime instead of compile time. You could change the value u=
sed as default and I would never know. By doing so, you might even break my=
 code.</div><div>Providing several overrides also hides the default paramet=
ers value, so it is almost the same but without the runtime penalty.<br></d=
iv><div><br></div><div>Best regards,<br></div><div>Vincent</div><div><br>On=
 Tuesday, April 30, 2013 11:41:40 AM UTC+2, Nicol Bolas wrote:<blockquote c=
lass=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px=
 #ccc solid;padding-left: 1ex;">On Tuesday, April 30, 2013 12:57:07 AM UTC-=
7, Hariharan Subramanian wrote:<blockquote class=3D"gmail_quote" style=3D"m=
argin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div=
 dir=3D"ltr"><div><div class=3D"gmail_quote"><blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-col=
or:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>Personally, I don't think that default parameters are a "flawed featur=
e". That being said, the flaws discussed are <i>not</i> resolved by your su=
ggestion.<br><br>Default parameters solve a simple, very specific problem. =
Function overloading solves a larger, more general problem. I like that we =
have both. And I think that the problem that you intend to solve, with some=
 kind of "default" parameter, is best solved with the larger, more general =
solution.<br>
<br>Also, with `optional`:<br><br><div style=3D"background-color:rgb(250,25=
0,250);border:1px solid rgb(187,187,187);word-wrap:break-word"><code><div><=
span style=3D"color:rgb(0,0,136)">void</span><span> foo</span><span style=
=3D"color:rgb(102,102,0)">(</span><span style=3D"color:rgb(0,0,136)">int</s=
pan><span> param</span><span style=3D"color:rgb(102,102,0)">,</span><span> =
optional</span><span style=3D"color:rgb(0,136,0)">&lt;type1&gt;</span><span=
> value1</span><span style=3D"color:rgb(102,102,0)">,</span><span> optional=
</span><span style=3D"color:rgb(0,136,0)">&lt;type2&gt;</span><span> value2=
</span><span style=3D"color:rgb(102,102,0)">)</span><span> </span><span sty=
le=3D"color:rgb(102,102,0)">{</span><span><br>
&nbsp; type1 val1 </span><span style=3D"color:rgb(102,102,0)">=3D</span><sp=
an> value1</span><span style=3D"color:rgb(102,102,0)">.</span><span>value_o=
r</span><span style=3D"color:rgb(102,102,0)">(</span><span>a1</span><span s=
tyle=3D"color:rgb(102,102,0)">);</span><span><br>
&nbsp; type2 val2 </span><span style=3D"color:rgb(102,102,0)">=3D</span><sp=
an> value2</span><span style=3D"color:rgb(102,102,0)">.</span><span>value_o=
r</span><span style=3D"color:rgb(102,102,0)">(</span><span>a2</span><span s=
tyle=3D"color:rgb(102,102,0)">);</span><span><br>
&nbsp; </span><span style=3D"color:rgb(136,0,0)">//implementation</span><sp=
an><br></span><span style=3D"color:rgb(102,102,0)">}</span><span><br><br></=
span><span style=3D"color:rgb(0,0,136)">void</span><span> usefoo</span><spa=
n style=3D"color:rgb(102,102,0)">()</span><span> </span><span style=3D"colo=
r:rgb(102,102,0)">{</span><span><br>
&nbsp; &nbsp; &nbsp; &nbsp;foo</span><span style=3D"color:rgb(102,102,0)">(=
</span><span style=3D"color:rgb(0,102,102)">0</span><span style=3D"color:rg=
b(102,102,0)">,</span><span> nullopt</span><span style=3D"color:rgb(102,102=
,0)">,</span><span> b2</span><span style=3D"color:rgb(102,102,0)">);</span>=
<span><br>
</span><span style=3D"color:rgb(102,102,0)">}</span><span><br></span></div>=
</code></div><br>That seems to take care of the problem.<br></div><div><div=
>

<p></p></div></div></blockquote></div><br></div><div>This does not work.</d=
iv></div></blockquote><div></div><blockquote class=3D"gmail_quote" style=3D=
"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><d=
iv dir=3D"ltr"><div></div><div>//foo.h</div><div>
void foo(int a, type1 param1, type2 param2 =3D value2);<br></div><div><br><=
/div><div>//foo.cpp</div><div><div>void foo(int a, type1 param1, type2 para=
m2) {<br>
</div><div>&nbsp; &nbsp;//Is param1 value1 or value3?</div><div>}</div><div=
><br></div></div><div>//usefoo1.cpp</div><div>void foo(int a, type1 param1 =
=3D value1, type2 param2);<br></div><div><div>
void usefoo1() {<br></div><div>&nbsp; &nbsp; &nbsp;foo(1);</div><div>}</div=
></div><div><br></div><div>//usefoo2.cpp<br></div><div>
<div>void foo(int a, type1 param1 =3D value3, type2 param2);<br></div><div>=
<div>void usefoo2() {<br></div><div>&nbsp; &nbsp; &nbsp;foo(1);</div><div>}=
</div></div></div></div></blockquote><div><br>Yes, that doesn't work. I agr=
ee. <i>And it should never work.</i><br><br>Re-declaring functions with dif=
ferent default parameters is a <i>horrible idea</i>. Default parameters sho=
uld be considered part of a function's interface.<br><br>What
 you're trying to do is a wrong thing. Default parameters are a tool for th=
e person implementing the function, not for person <i>calling</i> it. If yo=
u want to have some helper=20
function in a source file that uses other defaults that are local to that s=
ource file, the declare a helper function that fills in the default for you=
:<br><br><div style=3D"background-color:rgb(250,250,250);border-color:rgb(1=
87,187,187);border-style:solid;border-width:1px;word-wrap:break-word"><code=
><div><span style=3D"color:#800">//foo.h</span><span style=3D"color:#000"><=
br></span><span style=3D"color:#008">void</span><span style=3D"color:#000">=
 foo</span><span style=3D"color:#660">(</span><span style=3D"color:#008">in=
t</span><span style=3D"color:#000"> a</span><span style=3D"color:#660">,</s=
pan><span style=3D"color:#000"> type1 param1</span><span style=3D"color:#66=
0">,</span><span style=3D"color:#000"> type2 param2 </span><span style=3D"c=
olor:#660">=3D</span><span style=3D"color:#000"> value2</span><span style=
=3D"color:#660">);</span><span style=3D"color:#000"><br></span><span style=
=3D"color:#800">//foo.cpp</span><span style=3D"color:#000"><br></span><span=
 style=3D"color:#008">void</span><span style=3D"color:#000"> foo</span><spa=
n style=3D"color:#660">(</span><span style=3D"color:#008">int</span><span s=
tyle=3D"color:#000"> a</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000"> type1 param1</span><span style=3D"color:#660">,</span><spa=
n style=3D"color:#000"> type2 param2</span><span style=3D"color:#660">)</sp=
an><span style=3D"color:#000"> </span><span style=3D"color:#660">{</span><s=
pan style=3D"color:#000"><br>&nbsp; &nbsp;</span><span style=3D"color:#800"=
>//Is param1 value1 or value3?</span><span style=3D"color:#000"><br></span>=
<span style=3D"color:#660">}</span><span style=3D"color:#000"><br></span><s=
pan style=3D"color:#800">//usefoo1.cpp</span><span style=3D"color:#000"><br=
></span><span style=3D"color:#008">static</span><span style=3D"color:#000">=
 </span><span style=3D"color:#008">void</span><span style=3D"color:#000"> u=
sefoo1</span><span style=3D"color:#660">()</span><span style=3D"color:#000"=
> </span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>=
&nbsp; &nbsp; &nbsp;foo</span><span style=3D"color:#660">(</span><span styl=
e=3D"color:#066">1</span><span style=3D"color:#660">,</span><span style=3D"=
color:#000"> value1</span><span style=3D"color:#660">);</span><span style=
=3D"color:#000"><br></span><span style=3D"color:#660">}</span><span style=
=3D"color:#000"><br></span><span style=3D"color:#800">//usefoo2.cpp</span><=
span style=3D"color:#000"><br></span><span style=3D"color:#008">static</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#008">void</span>=
<span style=3D"color:#000"> usefoo2</span><span style=3D"color:#660">()</sp=
an><span style=3D"color:#000"> </span><span style=3D"color:#660">{</span><s=
pan style=3D"color:#000"><br>&nbsp; &nbsp; &nbsp;foo</span><span style=3D"c=
olor:#660">(</span><span style=3D"color:#066">1</span><span style=3D"color:=
#660">,</span><span style=3D"color:#000"> value3</span><span style=3D"color=
:#660">);</span><span style=3D"color:#000"><br></span><span style=3D"color:=
#660">}</span><span style=3D"color:#000"><br></span></div></code></div><br>=
See? That wasn't hard. Your default parameters are there, and any compiler =
worth using will likely inline them for you.<br><br>The C++ committee ought=
 not add features to support this usage pattern for default parameters.</di=
v></blockquote></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_4253_18199150.1367323846713--

.


Author: Nicol Bolas <jmckesson@gmail.com>
Date: Tue, 30 Apr 2013 05:31:03 -0700 (PDT)
Raw View
------=_Part_4913_12591903.1367325063771
Content-Type: text/plain; charset=ISO-8859-1

On Tuesday, April 30, 2013 4:06:45 AM UTC-7, Hariharan Subramanian wrote:
>
>
> Yes, that doesn't work. I agree. *And it should never work.*
>>
>> Re-declaring functions with different default parameters is a *horrible
>> idea*. Default parameters should be considered part of a function's
>> interface.
>>
>> I personally do not like to re-declare functions like that. But it's the
> choice of the individual.
>

It's only a "choice of the individual" because of the limitations of the
C++ language. It was never the intent of the language to allow users to
arbitrarily re-declare default parameters like that. It is simply an
outgrowth of what is possible, as necessitated by the way the language
works.

To make default parameters operate as efficiently as non-default
parameters, it was necessary for them to be something that is part of the
function declaration. That way, the compilation of the calling source code
would fill in the extra parameters, rather than some centralized code.
Coupled with the fact that the function definition is not linked to these
default parameters (it's not a part of the function's type), it becomes
possible to re-declare functions with different default parameters.

This was not what was intended. It's merely an outgrowth, an accident.

It should not be supported or encouraged.

 //foo.h
>> void foo(int a, type1 param1, type2 param2 = value2);
>> //foo.cpp
>> void foo(int a, type1 param1, type2 param2) {
>>    //Is param1 value1 or value3?
>> }
>> //usefoo1.cpp
>> static void usefoo1() {
>>      foo(1, value1);
>> }
>> //usefoo2.cpp
>> static void usefoo2() {
>>      foo(1, value3);
>> }
>>
>> See? That wasn't hard. Your default parameters are there, and any
>> compiler worth using will likely inline them for you.
>>
>> The C++ committee ought not add features to support this usage pattern
>> for default parameters.
>>
>> Default middle parameter proposal neither encourages nor discourages such
> usage pattern. If such a pattern should not be supported then that should
> be deprecated and removed subsequently instead of allowing the users to do
> it and also making it difficult to do it. The use case for this proposal is
> not this re-declaration case. It is just that it makes it easy to use that
> function.
>

But the re-declaration case is *exactly* what makes the optional method not
work. If you remove the silly re-declaration stuff, then the optional
method would work perfectly fine.

So if your use case is not about re-declaration, then why is it that
`optional` won't solve the problem?

(FYI: the correct answer to the question I just asked is, "what do you do
about *reference* parameters, like `const T&`?")


> void foo(int a, type1 param1 = value1, type2 param2 = value2);
> Assume that 50% of the users set param1 to value3 and want default value
> for param2 and the rest set param2 to value4 and want default value for
> param1. Because of the order of the declaration of parameters only 50% of
> the users will find it easier to use.
>

Or they can just use `foo(val, nullopt, value4);` with the previously
discussed `optional` method. See? It's the re-declaration that made the
optional method fail.

--

---
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/?hl=en.



------=_Part_4913_12591903.1367325063771
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On Tuesday, April 30, 2013 4:06:45 AM UTC-7, Hariharan Subramanian wrote:<b=
lockquote 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"><br><div><div c=
lass=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);bord=
er-left-style:solid;padding-left:1ex">
<div>Yes, that doesn't work. I agree. <i>And it should never work.</i><br><=
br>Re-declaring functions with different default parameters is a <i>horribl=
e idea</i>. Default parameters should be considered part of a function's in=
terface.<br>
<br></div></blockquote><div>I personally do not like to re-declare function=
s like that. But it's the choice of the individual.</div></div></div></div>=
</blockquote><div><br>It's only a "choice of the individual" because of the=
 limitations of the C++ language. It was never the intent of the language t=
o allow users to arbitrarily re-declare default parameters like that. It is=
 simply an outgrowth of what is possible, as necessitated by the way the la=
nguage works.<br><br>To make default parameters operate as efficiently as n=
on-default parameters, it was necessary for them to be something that is pa=
rt of the function declaration. That way, the compilation of the calling so=
urce code would fill in the extra parameters, rather than some centralized =
code. Coupled with the fact that the function definition is not linked to t=
hese default parameters (it's not a part of the function's type), it become=
s possible to re-declare functions with different default parameters.<br><b=
r>This was not what was intended. It's merely an outgrowth, an accident.<br=
><br>It should not be supported or encouraged.<br><br></div><blockquote cla=
ss=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_quo=
te">
<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;p=
adding-left:1ex"><div><div style=3D"background-color:rgb(250,250,250);borde=
r:1px solid rgb(187,187,187);word-wrap:break-word">
<code><div><div><span style=3D"color:rgb(136,0,0)">//foo.h</span><span><br>=
</span><span style=3D"color:rgb(0,0,136)">void</span><span> foo</span><span=
 style=3D"color:rgb(102,102,0)">(</span><span style=3D"color:rgb(0,0,136)">=
int</span><span> a</span><span style=3D"color:rgb(102,102,0)">,</span><span=
> type1 param1</span><span style=3D"color:rgb(102,102,0)">,</span><span> ty=
pe2 param2 </span><span style=3D"color:rgb(102,102,0)">=3D</span><span> val=
ue2</span><span style=3D"color:rgb(102,102,0)">);</span><span><br>
</span><span style=3D"color:rgb(136,0,0)">//foo.cpp</span><span><br></span>=
<span style=3D"color:rgb(0,0,136)">void</span><span> foo</span><span style=
=3D"color:rgb(102,102,0)">(</span><span style=3D"color:rgb(0,0,136)">int</s=
pan><span> a</span><span style=3D"color:rgb(102,102,0)">,</span><span> type=
1 param1</span><span style=3D"color:rgb(102,102,0)">,</span><span> type2 pa=
ram2</span><span style=3D"color:rgb(102,102,0)">)</span><span> </span><span=
 style=3D"color:rgb(102,102,0)">{</span><span><br>
&nbsp; &nbsp;</span><span style=3D"color:rgb(136,0,0)">//Is param1 value1 o=
r value3?</span><span><br></span><span style=3D"color:rgb(102,102,0)">}</sp=
an><span><br></span><span style=3D"color:rgb(136,0,0)">//usefoo1.cpp</span>=
<span><br>
</span></div><span style=3D"color:rgb(0,0,136)">static</span><span> </span>=
<span style=3D"color:rgb(0,0,136)">void</span><span> usefoo1</span><span st=
yle=3D"color:rgb(102,102,0)">()</span><span> </span><span style=3D"color:rg=
b(102,102,0)">{</span><span><br>
&nbsp; &nbsp; &nbsp;foo</span><span style=3D"color:rgb(102,102,0)">(</span>=
<span style=3D"color:rgb(0,102,102)">1</span><span style=3D"color:rgb(102,1=
02,0)">,</span><span> value1</span><span style=3D"color:rgb(102,102,0)">);<=
/span><span><br>
</span><span style=3D"color:rgb(102,102,0)">}</span><span><br></span><span =
style=3D"color:rgb(136,0,0)">//usefoo2.cpp</span><span><br></span><span sty=
le=3D"color:rgb(0,0,136)">static</span><span> </span><span style=3D"color:r=
gb(0,0,136)">void</span><span> usefoo2</span><span style=3D"color:rgb(102,1=
02,0)">()</span><span> </span><span style=3D"color:rgb(102,102,0)">{</span>=
<span><br>
&nbsp; &nbsp; &nbsp;foo</span><span style=3D"color:rgb(102,102,0)">(</span>=
<span style=3D"color:rgb(0,102,102)">1</span><span style=3D"color:rgb(102,1=
02,0)">,</span><span> value3</span><span style=3D"color:rgb(102,102,0)">);<=
/span><span><br>
</span><span style=3D"color:rgb(102,102,0)">}</span><span><br></span></div>=
</code></div><br>See? That wasn't hard. Your default parameters are there, =
and any compiler worth using will likely inline them for you.<br>
<br>The C++ committee ought not add features to support this usage pattern =
for default parameters.</div><div><div>

<p></p></div></div></blockquote></div>Default middle parameter proposal nei=
ther encourages nor discourages such usage pattern. If such a pattern shoul=
d not be supported then that should be deprecated and removed subsequently =
instead of allowing the users to do it and also making it difficult to do i=
t. The use case for this proposal is not this re-declaration case. It is ju=
st that it makes it easy to use that function.</div></div></blockquote><div=
><br>But the re-declaration case is <i>exactly</i> what makes the optional =
method not work. If you remove the silly re-declaration stuff, then the opt=
ional method would work perfectly fine.<br><br>So if your use case is not a=
bout re-declaration, then why is it that `optional` won't solve the problem=
?<br><br>(FYI: the correct answer to the question I just asked is, "what do=
 you do about <i>reference</i> parameters, like `const T&amp;`?")<br>&nbsp;=
</div><blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8=
ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">
<div>void foo(int a, type1 param1 =3D value1, type2 param2 =3D value2);</di=
v><div>Assume that 50% of the users set param1 to value3 and want default v=
alue for param2 and the rest set param2 to value4 and want default value fo=
r param1. Because of the order of the declaration of parameters only 50% of=
 the users will find it easier to use.</div></div></blockquote><div><br>Or =
they can just use `foo(val, nullopt, value4);` with the previously discusse=
d `optional` method. See? It's the re-declaration that made the optional me=
thod fail.</div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_4913_12591903.1367325063771--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Tue, 30 Apr 2013 18:48:32 +0530
Raw View
--001a11c370528d9a2704db93d678
Content-Type: text/plain; charset=ISO-8859-1

> It's only a "choice of the individual" because of the limitations of the
> C++ language. It was never the intent of the language to allow users to
> arbitrarily re-declare default parameters like that. It is simply an
> outgrowth of what is possible, as necessitated by the way the language
> works.
>
> It is neither an accident nor an outgrowth. It was a well intended move.
Otherwise they could have avoided the re-declaration by making it a
compiler error.

void foo(int, type1 param1, type2 param2 = value2); //original declaration
void foo(int, type1 param1 = value1, type2 param2); //re-declaration

It can be seen that the re-declaration adds a default value for param1 and
for param2 it does nothing. This is certainly not an accident. It was
intentional.


> To make default parameters operate as efficiently as non-default
> parameters, it was necessary for them to be something that is part of the
> function declaration. That way, the compilation of the calling source code
> would fill in the extra parameters, rather than some centralized code.
> Coupled with the fact that the function definition is not linked to these
> default parameters (it's not a part of the function's type), it becomes
> possible to re-declare functions with different default parameters.
>
> This was not what was intended. It's merely an outgrowth, an accident.
>
> It should not be supported or encouraged.
>

If a feature is not deprecated i don't see any point in not using it.


>
> But the re-declaration case is *exactly* what makes the optional method
> not work. If you remove the silly re-declaration stuff, then the optional
> method would work perfectly fine.
>
> So if your use case is not about re-declaration, then why is it that
> `optional` won't solve the problem?
>
> (FYI: the correct answer to the question I just asked is, "what do you do
> about *reference* parameters, like `const T&`?")
>
>

The motivation for me to propose is the use case which I mentioned. It so
happens that it works for re-declaration stuff properly. Whereas nullopt
does not work for re-declaration.

Or they can just use `foo(val, nullopt, value4);` with the previously
>> discussed `optional` method. See? It's the re-declaration that made the
>> optional method fail.
>>
> Re-declaration is a valid feature and it is not deprecated. Hence it can
be a reason for default middle parameter scoring over nullopt. Moreover,
nullopt does not work for existing APIs. This is another reason.

Regards,
Hariharan S

--

---
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/?hl=en.



--001a11c370528d9a2704db93d678
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><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-left-style:solid;p=
adding-left:1ex">
<div>It&#39;s only a &quot;choice of the individual&quot; because of the li=
mitations of the C++ language. It was never the intent of the language to a=
llow users to arbitrarily re-declare default parameters like that. It is si=
mply an outgrowth of what is possible, as necessitated by the way the langu=
age works.<br>
<br></div></blockquote><div>It is neither an accident nor an outgrowth. It =
was a well intended move. Otherwise they could have avoided the re-declarat=
ion by making it a compiler error.</div><div><br></div><div style>void foo(=
int, type1 param1, type2 param2 =3D value2); //original declaration</div>
<div style>void foo(int, type1 param1 =3D value1, type2 param2); //re-decla=
ration</div><div style><br></div><div style>It can be seen that the re-decl=
aration adds a default value for param1 and for param2 it does nothing. Thi=
s is certainly not an accident. It was intentional.=A0</div>
<div>=A0</div><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>To make default parameters operate as e=
fficiently as non-default parameters, it was necessary for them to be somet=
hing that is part of the function declaration. That way, the compilation of=
 the calling source code would fill in the extra parameters, rather than so=
me centralized code. Coupled with the fact that the function definition is =
not linked to these default parameters (it&#39;s not a part of the function=
&#39;s type), it becomes possible to re-declare functions with different de=
fault parameters.<br>
<br>This was not what was intended. It&#39;s merely an outgrowth, an accide=
nt.<br><br>It should not be supported or encouraged.<br></div></blockquote>=
<div><br></div><div style>If a feature is not deprecated i don&#39;t see an=
y point in not using it.</div>
<div style>=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);borde=
r-left-style:solid;padding-left:1ex"><div><br></div><div>But the re-declara=
tion case is <i>exactly</i> what makes the optional method not work. If you=
 remove the silly re-declaration stuff, then the optional method would work=
 perfectly fine.<br>
<br>So if your use case is not about re-declaration, then why is it that `o=
ptional` won&#39;t solve the problem?<br><br>(FYI: the correct answer to th=
e question I just asked is, &quot;what do you do about <i>reference</i> par=
ameters, like `const T&amp;`?&quot;)<br>
=A0</div></blockquote><div>=A0</div><div style>The motivation for me to pro=
pose is the use case which I mentioned. It so happens that it works for re-=
declaration stuff properly. Whereas nullopt does not work for re-declaratio=
n.</div>
<div style><br></div><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 class=3D"im"><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;bo=
rder-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir=3D"ltr">
<div><span style=3D"color:rgb(34,34,34)">Or they can just use `foo(val, nul=
lopt, value4);` with the previously discussed `optional` method. See? It&#3=
9;s the re-declaration that made the optional method fail.</span><br></div>
</div></blockquote></div><div class=3D""><div class=3D"h5">

<p></p></div></div></blockquote></div>Re-declaration is a valid feature and=
 it is not deprecated. Hence it can be a reason for default middle paramete=
r scoring over nullopt. Moreover, nullopt does not work for existing APIs. =
This is another reason.</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra" style>Regar=
ds,</div><div class=3D"gmail_extra" style>Hariharan S</div><div class=3D"gm=
ail_extra" style><br></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--001a11c370528d9a2704db93d678--

.


Author: Lawrence Crowl <crowl@googlers.com>
Date: Tue, 30 Apr 2013 10:40:26 -0700
Raw View
On 4/30/13, Hariharan Subramanian <tohari@gmail.com> wrote:
> The motivation for me to propose is the use case which I
> mentioned. It so happens that it works for re-declaration stuff
> properly. Whereas nullopt does not work for re-declaration.

Would named arguments meet your need?  E.g.

int foo( type1 arg1=value1, type2 arg2=value2, type3 arg3=value3);

And to use a syntax that I am pretty sure will not work,
foo(arg3 is value4) means foo(value1, value2, value4).

--
Lawrence Crowl

--

---
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/?hl=en.



.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Wed, 1 May 2013 00:38:33 +0530
Raw View
--001a11c34f4049f3d204db98ba00
Content-Type: text/plain; charset=ISO-8859-1

On Tue, Apr 30, 2013 at 11:10 PM, Lawrence Crowl <crowl@googlers.com> wrote:

> On 4/30/13, Hariharan Subramanian <tohari@gmail.com> wrote:
> > The motivation for me to propose is the use case which I
> > mentioned. It so happens that it works for re-declaration stuff
> > properly. Whereas nullopt does not work for re-declaration.
>
> Would named arguments meet your need?  E.g.
>
> int foo( type1 arg1=value1, type2 arg2=value2, type3 arg3=value3);
>
> And to use a syntax that I am pretty sure will not work,
> foo(arg3 is value4) means foo(value1, value2, value4).
>
>
Named arguments is too powerful a tool for this purpose. It might solve a
bigger problem. For this smaller problem a simple default suffices.

Regards,
Hariharan S

--

---
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/?hl=en.



--001a11c34f4049f3d204db98ba00
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><div class=3D"gmail_quote">=
On Tue, Apr 30, 2013 at 11:10 PM, Lawrence Crowl <span dir=3D"ltr">&lt;<a h=
ref=3D"mailto:crowl@googlers.com" target=3D"_blank">crowl@googlers.com</a>&=
gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im">On 4/30/13, Hariharan Subr=
amanian &lt;<a href=3D"mailto:tohari@gmail.com">tohari@gmail.com</a>&gt; wr=
ote:<br>

&gt; The motivation for me to propose is the use case which I<br>
&gt; mentioned. It so happens that it works for re-declaration stuff<br>
&gt; properly. Whereas nullopt does not work for re-declaration.<br>
<br>
</div>Would named arguments meet your need? =A0E.g.<br>
<br>
int foo( type1 arg1=3Dvalue1, type2 arg2=3Dvalue2, type3 arg3=3Dvalue3);<br=
>
<br>
And to use a syntax that I am pretty sure will not work,<br>
foo(arg3 is value4) means foo(value1, value2, value4).<br><span class=3D"HO=
EnZb"><font color=3D"#888888"><br></font></span></blockquote><div style><br=
></div><div style>Named arguments is too powerful a tool for this purpose. =
It might solve a bigger problem. For this smaller problem a simple default =
suffices.</div>
<div style><br></div><div style>Regards,</div><div style>Hariharan S</div><=
/div></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--001a11c34f4049f3d204db98ba00--

.


Author: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Date: Wed, 01 May 2013 00:05:44 +0200
Raw View
Le 29/04/13 12:15, Hariharan Subramanian a =E9crit :
> Problem:
> Change the default value of a default parameter in a function might=20
> result in a surprising behaviour. The problem is described below.
> Consider the following function declaration & definition
>
> //file1.h
> void foo(int param, type1 value1 =3D a1, type2 value2 =3D b1);
>
> //file1.cpp
> #include "file.h"
> void foo(int param, type1 value1, type2 value2) {
>         //implementation
> }
>
> //file2.cpp
> #include "file1.h"
>
> void usefoo() {
>        foo(0, a1, b2); //i want to pass b2 and hence i am passing the=20
> default value a1 also
> }
>
> It is often the case that during the lifecycle of the software the=20
> default value is changed to a2 from a1. This necessitates a change in=20
> the function usefoo(). As there is no compilation error it is very=20
> easy to miss this error. Even if the person knows that it should be=20
> changed it is a cumbersome manual process (change it in all the=20
> places) and hence error prone. This kind of change is not uncommon at=20
> all. Days of work gets wasted due to this.
>
> Solution:
> Introduce the default keyword during the function call. The function=20
> call becomes
>
> void usefoo() {
>        foo(0, default, b2);
> }
This should also work

// header
namespace detail {
   foo_value1_default() {return a1};
}
void foo(int param, type1 value1 =3D foo_value1_default(), type2 value2 =3D=
=20
b1);
void foo(int param,  type2 value2 =3D b1) {foo(param,=20
foo_value1_default(), value2);}

//usage
        foo(0);
        foo(0, b1);
        foo(0, b1, b2);
        foo(0, b2);

It requires minor gymnastic for the implementer, but from the user point=20
of view it provides what you where locking for.

Best,
Vicente

--=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/?hl=3Den.



.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Wed, 1 May 2013 08:44:17 +0530
Raw View
--001a11c23b1c61ef8f04db9f8340
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

If my understanding of your solution is correct, the number of functions an
implementer has to write is exponential in the size of the number of
default parameters. I think it's a subset problem.

Regards,
Hariharan S


On Wed, May 1, 2013 at 3:35 AM, Vicente J. Botet Escriba <
vicente.botet@wanadoo.fr> wrote:

> Le 29/04/13 12:15, Hariharan Subramanian a =E9crit :
>
>  Problem:
>> Change the default value of a default parameter in a function might
>> result in a surprising behaviour. The problem is described below.
>> Consider the following function declaration & definition
>>
>> //file1.h
>> void foo(int param, type1 value1 =3D a1, type2 value2 =3D b1);
>>
>> //file1.cpp
>> #include "file.h"
>> void foo(int param, type1 value1, type2 value2) {
>>         //implementation
>> }
>>
>> //file2.cpp
>> #include "file1.h"
>>
>> void usefoo() {
>>        foo(0, a1, b2); //i want to pass b2 and hence i am passing the
>> default value a1 also
>> }
>>
>> It is often the case that during the lifecycle of the software the
>> default value is changed to a2 from a1. This necessitates a change in th=
e
>> function usefoo(). As there is no compilation error it is very easy to m=
iss
>> this error. Even if the person knows that it should be changed it is a
>> cumbersome manual process (change it in all the places) and hence error
>> prone. This kind of change is not uncommon at all. Days of work gets was=
ted
>> due to this.
>>
>> Solution:
>> Introduce the default keyword during the function call. The function cal=
l
>> becomes
>>
>> void usefoo() {
>>        foo(0, default, b2);
>> }
>>
> This should also work
>
> // header
> namespace detail {
>   foo_value1_default() {return a1};
> }
> void foo(int param, type1 value1 =3D foo_value1_default(), type2 value2 =
=3D
> b1);
> void foo(int param,  type2 value2 =3D b1) {foo(param, foo_value1_default(=
),
> value2);}
>
> //usage
>        foo(0);
>        foo(0, b1);
>        foo(0, b1, b2);
>        foo(0, b2);
>
> It requires minor gymnastic for the implementer, but from the user point
> of view it provides what you where locking for.
>
> Best,
> Vicente
>
>
> --
>
> --- You received this message because you are subscribed to a topic in th=
e
> Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this topic, visit https://groups.google.com/a/**
> isocpp.org/d/topic/std-**proposals/4tWQEMqEH8s/**unsubscribe?hl=3Den<http=
s://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubs=
cribe?hl=3Den>
> .
> To unsubscribe from this group and all its topics, send an email to
> std-proposals+unsubscribe@**isocpp.org<std-proposals%2Bunsubscribe@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/?hl=3Den<http://groups.google.com/a/isocpp.org/group/std-propos=
als/?hl=3Den>
> .
>
>
>

--=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/?hl=3Den.



--001a11c23b1c61ef8f04db9f8340
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">If my understanding of your solution is correct, the numbe=
r of functions an implementer has to write is exponential in the size of th=
e number of default parameters. I think it&#39;s a subset problem.<div><br>
</div><div style>Regards,</div><div style>Hariharan S</div></div><div class=
=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Wed, May 1, 2013 at =
3:35 AM, Vicente J. Botet Escriba <span dir=3D"ltr">&lt;<a href=3D"mailto:v=
icente.botet@wanadoo.fr" target=3D"_blank">vicente.botet@wanadoo.fr</a>&gt;=
</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Le 29/04/13 12:15, Hariharan Subramanian a =
=E9crit :<div class=3D"im"><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Problem:<br>
Change the default value of a default parameter in a function might result =
in a surprising behaviour. The problem is described below.<br>
Consider the following function declaration &amp; definition<br>
<br>
//file1.h<br>
void foo(int param, type1 value1 =3D a1, type2 value2 =3D b1);<br>
<br>
//file1.cpp<br>
#include &quot;file.h&quot;<br>
void foo(int param, type1 value1, type2 value2) {<br>
=A0 =A0 =A0 =A0 //implementation<br>
}<br>
<br>
//file2.cpp<br>
#include &quot;file1.h&quot;<br>
<br>
void usefoo() {<br>
=A0 =A0 =A0 =A0foo(0, a1, b2); //i want to pass b2 and hence i am passing t=
he default value a1 also<br>
}<br>
<br>
It is often the case that during the lifecycle of the software the default =
value is changed to a2 from a1. This necessitates a change in the function =
usefoo(). As there is no compilation error it is very easy to miss this err=
or. Even if the person knows that it should be changed it is a cumbersome m=
anual process (change it in all the places) and hence error prone. This kin=
d of change is not uncommon at all. Days of work gets wasted due to this.<b=
r>

<br>
Solution:<br>
Introduce the default keyword during the function call. The function call b=
ecomes<br>
<br>
void usefoo() {<br>
=A0 =A0 =A0 =A0foo(0, default, b2);<br>
}<br>
</blockquote></div>
This should also work<br>
<br>
// header<br>
namespace detail {<br>
=A0 foo_value1_default() {return a1};<br>
}<br>
void foo(int param, type1 value1 =3D foo_value1_default(), type2 value2 =3D=
 b1);<br>
void foo(int param, =A0type2 value2 =3D b1) {foo(param, foo_value1_default(=
), value2);}<br>
<br>
//usage<br>
=A0 =A0 =A0 =A0foo(0);<br>
=A0 =A0 =A0 =A0foo(0, b1);<br>
=A0 =A0 =A0 =A0foo(0, b1, b2);<br>
=A0 =A0 =A0 =A0foo(0, b2);<br>
<br>
It requires minor gymnastic for the implementer, but from the user point of=
 view it provides what you where locking for.<br>
<br>
Best,<br>
Vicente<div class=3D"HOEnZb"><div class=3D"h5"><br>
<br>
-- <br>
<br>
--- You received this message because you are subscribed to a topic in the =
Google Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=3Den" target=
=3D"_blank">https://groups.google.com/a/<u></u>isocpp.org/d/topic/std-<u></=
u>proposals/4tWQEMqEH8s/<u></u>unsubscribe?hl=3Den</a>.<br>

To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals%2Bunsubscribe@isocpp.org" target=3D"_blank">std-pr=
oposals+unsubscribe@<u></u>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/?hl=3Den" target=3D"_blank">http://groups.google.com/a/<u></u=
>isocpp.org/group/std-<u></u>proposals/?hl=3Den</a>.<br>
<br>
<br>
</div></div></blockquote></div><br></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--001a11c23b1c61ef8f04db9f8340--

.


Author: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Date: Wed, 01 May 2013 10:00:22 +0200
Raw View
This is a multi-part message in MIME format.
--------------020806040906090201080107
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable


>
> On Wed, May 1, 2013 at 3:35 AM, Vicente J. Botet Escriba=20
> <vicente.botet@wanadoo.fr <mailto:vicente.botet@wanadoo.fr>> wrote:
>
>     Le 29/04/13 12:15, Hariharan Subramanian a =E9crit :
>
>
>
>         Solution:
>         Introduce the default keyword during the function call. The
>         function call becomes
>
>         void usefoo() {
>                foo(0, default, b2);
>         }
>
>     This should also work
>
>     // header
>     namespace detail {
>       foo_value1_default() {return a1};
>     }
>     void foo(int param, type1 value1 =3D foo_value1_default(), type2
>     value2 =3D b1);
>     void foo(int param,  type2 value2 =3D b1) {foo(param,
>     foo_value1_default(), value2);}
>
>     //usage
>            foo(0);
>            foo(0, b1);
>            foo(0, b1, b2);
>            foo(0, b2);
>
>     It requires minor gymnastic for the implementer, but from the user
>     point of view it provides what you where locking for.
>
>

Le 01/05/13 05:14, Hariharan Subramanian a =E9crit :
> If my understanding of your solution is correct, the number of=20
> functions an implementer has to write is exponential in the size of=20
> the number of default parameters. I think it's a subset problem.
>
>
You are right, if the number of defaulted parameters is big, but I would=20
not try to solve this problem changing the language.

The alternative to avoid all the overload that is close to your default=20
would be for the user to use the foo_value1_default.

        foo(0, foo_value1_default(), b2);

This is less elegant, but do you really think that it is worth changing=20
the language to improve it?

If named parameters were there would you request this feature?

Vicente

--=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/?hl=3Den.



--------------020806040906090201080107
Content-Type: text/html; charset=ISO-8859-1

<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <blockquote
cite="mid:CAE1+Xsb1Aq9+gSeu=6NjHvks3vbMGmkoHJsxDTYW9JZxJ=oTPQ@mail.gmail.com"
      type="cite">
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Wed, May 1, 2013 at 3:35 AM, Vicente
          J. Botet Escriba <span dir="ltr">&lt;<a
              moz-do-not-send="true"
              href="mailto:vicente.botet@wanadoo.fr" target="_blank">vicente.botet@wanadoo.fr</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Le
            29/04/13 12:15, Hariharan Subramanian a &eacute;crit :
            <div class="im"><br>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                <br>
                <br>
                Solution:<br>
                Introduce the default keyword during the function call.
                The function call becomes<br>
                <br>
                void usefoo() {<br>
                &nbsp; &nbsp; &nbsp; &nbsp;foo(0, default, b2);<br>
                }<br>
              </blockquote>
            </div>
            This should also work<br>
            <br>
            // header<br>
            namespace detail {<br>
            &nbsp; foo_value1_default() {return a1};<br>
            }<br>
            void foo(int param, type1 value1 = foo_value1_default(),
            type2 value2 = b1);<br>
            void foo(int param, &nbsp;type2 value2 = b1) {foo(param,
            foo_value1_default(), value2);}<br>
            <br>
            //usage<br>
            &nbsp; &nbsp; &nbsp; &nbsp;foo(0);<br>
            &nbsp; &nbsp; &nbsp; &nbsp;foo(0, b1);<br>
            &nbsp; &nbsp; &nbsp; &nbsp;foo(0, b1, b2);<br>
            &nbsp; &nbsp; &nbsp; &nbsp;foo(0, b2);<br>
            <br>
            It requires minor gymnastic for the implementer, but from
            the user point of view it provides what you where locking
            for.<br>
            <br>
          </blockquote>
        </div>
      </div>
      <br>
    </blockquote>
    <br>
    <div class="moz-cite-prefix">Le 01/05/13 05:14, Hariharan
      Subramanian a &eacute;crit&nbsp;:<br>
    </div>
    <blockquote
cite="mid:CAE1+Xsb1Aq9+gSeu=6NjHvks3vbMGmkoHJsxDTYW9JZxJ=oTPQ@mail.gmail.com"
      type="cite">
      <div class="gmail_extra">If my understanding of your solution is
        correct, the number of functions an implementer has to write is
        exponential in the size of the number of default parameters. I
        think it's a subset problem.
        <div><br>
        </div>
        <br>
      </div>
    </blockquote>
    You are right, if the number of defaulted parameters is big, but I
    would not try to solve this problem changing the language.<br>
    <br>
    The alternative to avoid all the overload that is close to your
    default would be for the user to use the foo_value1_default.<br>
    <br>
    &nbsp; &nbsp; &nbsp;&nbsp; foo(0, foo_value1_default(), b2);<br>
    <br>
    This is less elegant, but do you really think that it is worth
    changing the language to improve it?<br>
    <br>
    If named parameters were there would you request this feature?<br>
    <br>
    Vicente
  </body>
</html>

<p></p>

-- <br />
&nbsp;<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 email to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href="http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en">http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en</a>.<br />
&nbsp;<br />
&nbsp;<br />

--------------020806040906090201080107--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Wed, 1 May 2013 14:20:13 +0530
Raw View
--047d7b3441d6ce8dbf04dba434c5
Content-Type: text/plain; charset=ISO-8859-1

>
>
>  You are right, if the number of defaulted parameters is big, but I would
> not try to solve this problem changing the language.
>
> The alternative to avoid all the overload that is close to your default
> would be for the user to use the foo_value1_default.
>
>        foo(0, foo_value1_default(), b2);
>
> This is less elegant, but do you really think that it is worth changing
> the language to improve it?
>
>
 I don't think it solves this problem.
1. If foo_value1_default() is to be written by the user of foo then he has
to change it every time the creator of foo changes the default value. This
suffers from the same problem which it tries to solve. (No need to check
the default value. Just pass it automatically)
2. If foo_value1_default() is to be written by the creator of foo then it
will not work for the existing functions. For newer functions the writer of
foo has to ensure a few things.
a) definition of foo_value1_default() should be in the header file (because
it is a problem if the source code is not available and only the header is
available).
b) both the creator of foo and the user of foo must check that the value
returned by foo_value1_default() matches with the one in the function
declaration. This again suffers from the same problem which it tries to
solve. (No need to check the default value. Just pass it automatically)

If named parameters were there would you request this feature?
>

Named parameters solves this problem. But introducing named parameters only
for this would be an overkill. Even otherwise, I think named parameters is
unnecessary. Cannot the IDE simply display the name of the parameter
adjacent to the parameter passed? No need to change the language at all.
Named parameters would have been useful during the 1990s but not now.

Regards,
Hariharan S

--

---
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/?hl=en.



--047d7b3441d6ce8dbf04dba434c5
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><blo=
ckquote 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;paddi=
ng-left:1ex">
<div bgcolor=3D"#FFFFFF" text=3D"#000000"><div class=3D"im"><blockquote typ=
e=3D"cite"><div class=3D"gmail_extra"><br>
      </div>
    </blockquote></div>
    You are right, if the number of defaulted parameters is big, but I
    would not try to solve this problem changing the language.<br>
    <br>
    The alternative to avoid all the overload that is close to your
    default would be for the user to use the foo_value1_default.<br>
    <br>
    =A0 =A0 =A0=A0 foo(0, foo_value1_default(), b2);<br>
    <br>
    This is less elegant, but do you really think that it is worth
    changing the language to improve it?<br>
    <br></div></blockquote><div style><br></div><div style>=A0I don&#39;t t=
hink it solves this problem.</div><div style>1. If foo_value1_default() is =
to be written by the user of foo then he has to change it every time the cr=
eator of foo changes the default value. This suffers from the same problem =
which it tries to solve.=A0(No need to check the default value. Just pass i=
t automatically)</div>
<div style>2. If foo_value1_default() is to be written by the creator of fo=
o then it will not work for the existing functions. For newer functions the=
 writer of foo has to ensure a few things.</div><div style>a) definition of=
 foo_value1_default() should be in the header file (because it is a problem=
 if the source code is not available and only the header is available).</di=
v>
<div style>b) both the creator of foo and the user of foo must check that t=
he value returned by foo_value1_default() matches with the one in the funct=
ion declaration. This again suffers from the same problem which it tries to=
 solve. (No need to check the default value. Just pass it automatically)</d=
iv>
<div style><br></div><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 bgcolor=3D"#FFFFFF" text=3D"#000=
000">

    If named parameters were there would you request this feature?</div></b=
lockquote><div><br></div><div style>Named parameters solves this problem. B=
ut introducing named parameters only for this would be an overkill. Even ot=
herwise, I think named parameters is unnecessary. Cannot the IDE simply dis=
play the name of the parameter adjacent to the parameter passed? No need to=
 change the language at all. Named parameters would have been useful during=
 the 1990s but not now.</div>
<div style><br></div><div style>Regards,</div><div style>Hariharan S</div><=
div style><br></div></div></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--047d7b3441d6ce8dbf04dba434c5--

.


Author: temptony@freemail.hu
Date: Wed, 1 May 2013 02:03:18 -0700 (PDT)
Raw View
------=_Part_7898_2066272.1367398998375
Content-Type: text/plain; charset=ISO-8859-1

I think it's an excellent idea. Simple and obvious. Which means that its
chances of being accepted in this forum are very slim, I'm afraid!

--

---
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/?hl=en.



------=_Part_7898_2066272.1367398998375
Content-Type: text/html; charset=ISO-8859-1

I think it's an excellent idea. Simple and obvious. Which means that its chances of being accepted in this forum are very slim, I'm afraid!<br><br>

<p></p>

-- <br />
&nbsp;<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 email to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href="http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en">http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_7898_2066272.1367398998375--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Wed, 1 May 2013 18:17:03 +0530
Raw View
--047d7b3a85c8cc995204dba783f6
Content-Type: text/plain; charset=ISO-8859-1

Thanks for the heads up :).

Regards,
Hariharan S


On Wed, May 1, 2013 at 2:33 PM, <temptony@freemail.hu> wrote:

> I think it's an excellent idea. Simple and obvious. Which means that its
> chances of being accepted in this forum are very slim, I'm afraid!
>
>
>  --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=en
> .
> To unsubscribe from this group and all its topics, 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/?hl=en.
>
>
>

--

---
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/?hl=en.



--047d7b3a85c8cc995204dba783f6
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Thanks for the heads up :).<div><br></div><div style>Regar=
ds,</div><div style>Hariharan S</div></div><div class=3D"gmail_extra"><br><=
br><div class=3D"gmail_quote">On Wed, May 1, 2013 at 2:33 PM,  <span dir=3D=
"ltr">&lt;<a href=3D"mailto:temptony@freemail.hu" target=3D"_blank">tempton=
y@freemail.hu</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">I think it&#39;s an excellent idea. Simple a=
nd obvious. Which means that its chances of being accepted in this forum ar=
e very slim, I&#39;m afraid!<div class=3D"HOEnZb">
<div class=3D"h5"><br><br>

<p></p>

-- <br>
=A0<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=3Den" target=
=3D"_blank">https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4t=
WQEMqEH8s/unsubscribe?hl=3Den</a>.<br>

To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals%2Bunsubscribe@isocpp.org" target=3D"_blank">std-pr=
oposals+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/?hl=3Den" target=3D"_blank">http://groups.google.com/a/isocpp=
..org/group/std-proposals/?hl=3Den</a>.<br>
=A0<br>
=A0<br>
</div></div></blockquote></div><br></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--047d7b3a85c8cc995204dba783f6--

.


Author: Lawrence Crowl <crowl@googlers.com>
Date: Wed, 1 May 2013 10:44:52 -0700
Raw View
On 4/30/13, Hariharan Subramanian <tohari@gmail.com> wrote:
> On Apr 30, 2013 Lawrence Crowl <crowl@googlers.com> wrote:
> > On 4/30/13, Hariharan Subramanian <tohari@gmail.com> wrote:
> > > The motivation for me to propose is the use case which I
> > > mentioned. It so happens that it works for re-declaration stuff
> > > properly. Whereas nullopt does not work for re-declaration.
> >
> > Would named arguments meet your need?  E.g.
> >
> > int foo( type1 arg1=value1, type2 arg2=value2, type3 arg3=value3);
> >
> > And to use a syntax that I am pretty sure will not work,
> > foo(arg3 is value4) means foo(value1, value2, value4).
>
> Named arguments is too powerful a tool for this purpose. It
> might solve a bigger problem. For this smaller problem a simple
> default suffices.

One of the tasks of the committee is to balance the value of
new features against the increasing complexity of the language.
Whenever we can serve several different needs with one language
feature, we save everyone considerable effort to learn things.

--
Lawrence Crowl

--

---
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/?hl=en.



.


Author: Tony V E <tvaneerd@gmail.com>
Date: Wed, 1 May 2013 16:41:04 -0400
Raw View
--089e0122aefefa519004dbae2271
Content-Type: text/plain; charset=ISO-8859-1

On Wed, May 1, 2013 at 4:50 AM, Hariharan Subramanian <tohari@gmail.com>wrote:

>
> Named parameters solves this problem. But introducing named parameters
> only for this would be an overkill. Even otherwise, I think named
> parameters is unnecessary. Cannot the IDE simply display the name of the
> parameter adjacent to the parameter passed? No need to change the language
> at all. Named parameters would have been useful during the 1990s but not
> now.
>
> Regards,
> Hariharan S
>
>
>

The IDE showing names doesn't help much.  The difference is:

foo(10, default, default, default, 12, default)
vs
foo(.x = 10, .z = 12)

Some people might find the second easier to read and understand.  (And some
might prefer the first because it doesn't "hide" as much.)

Tony

--

---
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/?hl=en.



--089e0122aefefa519004dbae2271
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><br><div class=3D"gmail=
_quote">On Wed, May 1, 2013 at 4:50 AM, Hariharan Subramanian <span dir=3D"=
ltr">&lt;<a href=3D"mailto:tohari@gmail.com" target=3D"_blank">tohari@gmail=
..com</a>&gt;</span> wrote:<br>
<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 class=3D"gmail_extra">=
<div class=3D"gmail_quote"><br><div>Named parameters solves this problem. B=
ut introducing named parameters only for this would be an overkill. Even ot=
herwise, I think named parameters is unnecessary. Cannot the IDE simply dis=
play the name of the parameter adjacent to the parameter passed? No need to=
 change the language at all. Named parameters would have been useful during=
 the 1990s but not now.</div>

<div><br></div><div>Regards,</div><div>Hariharan S</div><div><br></div></di=
v></div></div><div class=3D"HOEnZb"><div>=A0</div></div></blockquote><div><=
br></div><div>The IDE showing names doesn&#39;t help much.=A0 The differenc=
e is:<br>
<br></div><div>foo(10, default, default, default, 12, default)<br></div><di=
v>vs<br></div><div>foo(.x =3D 10, .z =3D 12)<br><br></div><div>Some people =
might find the second easier to read and understand.=A0 (And some might pre=
fer the first because it doesn&#39;t &quot;hide&quot; as much.)<br>
<br></div><div>Tony<br></div></div></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--089e0122aefefa519004dbae2271--

.


Author: Alex B <devalexb@gmail.com>
Date: Wed, 1 May 2013 19:33:03 -0700 (PDT)
Raw View
------=_Part_1739_21792476.1367461983139
Content-Type: text/plain; charset=ISO-8859-1

Why would we have to chose between the proposed idea and named parameters?
Both are interesting. The proposed idea doesn't get in the way of
those preferring named parameters (if they ever get into the standard...).
Personally I like it; it's simple, doesn't add complexity and doesn't get
in the way of anything. It is not because there are workarounds and that we
could live without it that it should not be considered (think about
range-based for loops; they were never "needed" but they were added).
About the proposed idea, two things that cross my mind.

*1. Default for first parameters (and not only last ones).*
It could now also be possible to have default parameters which are not the
last ones. This is something new that I would put in the same proposal. For
example:
void foo(int=0, int=1, int, int, int) {}
foo(default, default, 2, 3, 4);

Of course there would be no way to use those default values without using
the "default" keyword. (or by using the alternate syntax; see 2.)

*2. Omitting parameter instead of the "default" keyword*
Why not calling without any keywords between the comas to signify to use
the default? Example from the previous post:
foo(10, default, default, default, 12, default);

would become:
foo(10, , , , 12);

Some might prefer it, some might dislike it and stick with the "default"
keyword and some would allow both. Personally I don't have anything against
any of these options.

--

---
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/?hl=en.



------=_Part_1739_21792476.1367461983139
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Why would we have to chose between the proposed idea and named parameters? =
Both are interesting. The proposed idea doesn't get in the way of those&nbs=
p;preferring&nbsp;named parameters (if they ever get into the standard...).=
<div>Personally I like it; it's simple, doesn't add complexity and doesn't =
get in the way of anything. It is not because there are workarounds and tha=
t we could live without it that it should not be considered (think about ra=
nge-based for loops; they were never "needed" but they were added).<br></di=
v><div>About the proposed idea, two things that cross my mind.</div><div><b=
r></div><div><b>1. Default for first parameters (and not only last ones).</=
b></div><div>It could now also be possible to have default parameters which=
 are not the last ones. This is something new that I would put in the same =
proposal. For example:</div><div style=3D"background-color: rgb(250, 250, 2=
50); border: 1px solid rgb(187, 187, 187); word-wrap: break-word;" class=3D=
"prettyprint"><code class=3D"prettyprint"><div class=3D"subprettyprint"><sp=
an style=3D"color: #008;" class=3D"styled-by-prettify">void</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> foo</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #0=
08;" class=3D"styled-by-prettify">int</span><span style=3D"color: #660;" cl=
ass=3D"styled-by-prettify">=3D</span><span style=3D"color: #066;" class=3D"=
styled-by-prettify">0</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">int</sp=
an><span style=3D"color: #660;" class=3D"styled-by-prettify">=3D</span><spa=
n style=3D"color: #066;" class=3D"styled-by-prettify">1</span><span style=
=3D"color: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color=
: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #008;" =
class=3D"styled-by-prettify">int</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pret=
tify">int</span><span style=3D"color: #660;" class=3D"styled-by-prettify">,=
</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><s=
pan style=3D"color: #008;" class=3D"styled-by-prettify">int</span><span sty=
le=3D"color: #660;" class=3D"styled-by-prettify">)</span><span style=3D"col=
or: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">{}</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify"><br>foo</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">(</span><span style=3D"color: #008;" class=3D"styled-b=
y-prettify">default</span><span style=3D"color: #660;" class=3D"styled-by-p=
rettify">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify">=
 </span><span style=3D"color: #008;" class=3D"styled-by-prettify">default</=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><spa=
n style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=
=3D"color: #066;" class=3D"styled-by-prettify">2</span><span style=3D"color=
: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"> </span><span style=3D"color: #066;" class=3D"=
styled-by-prettify">3</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> </span><span style=3D"color: #066;" class=3D"styled-by-prettify">4</span=
><span style=3D"color: #660;" class=3D"styled-by-prettify">);</span></div><=
/code></div><div><br></div><div>Of course there would be no way to use thos=
e default values without using the "default" keyword. (or by using the alte=
rnate syntax; see 2.)</div><div><br></div><div><b>2. Omitting parameter ins=
tead of the "default" keyword</b></div><div>Why not calling without any key=
words between the comas to signify to use the default? Example from the pre=
vious post:</div><div><div style=3D"background-color: rgb(250, 250, 250); b=
order: 1px solid rgb(187, 187, 187); word-wrap: break-word;" class=3D"prett=
yprint"><code class=3D"prettyprint"><div class=3D"subprettyprint"><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify">foo</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">(</span><span style=3D"color: #06=
6;" class=3D"styled-by-prettify">10</span><span style=3D"color: #660;" clas=
s=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"> </span><span style=3D"color: #008;" class=3D"styled-by-pre=
ttify">default</span><span style=3D"color: #660;" class=3D"styled-by-pretti=
fy">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span style=3D"color: #008;" class=3D"styled-by-prettify">default</span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span sty=
le=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"col=
or: #008;" class=3D"styled-by-prettify">default</span><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> </span><span style=3D"color: #066;" class=3D"s=
tyled-by-prettify">12</span><span style=3D"color: #660;" class=3D"styled-by=
-prettify">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">default=
</span><span style=3D"color: #660;" class=3D"styled-by-prettify">);</span><=
/div></code></div><br></div><div>would become:</div><div><div style=3D"back=
ground-color: rgb(250, 250, 250); border: 1px solid rgb(187, 187, 187); wor=
d-wrap: break-word;" class=3D"prettyprint"><code class=3D"prettyprint"><div=
 class=3D"subprettyprint"><span style=3D"color: #000;" class=3D"styled-by-p=
rettify">foo</span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">(</span><span style=3D"color: #066;" class=3D"styled-by-prettify">10</spa=
n><span style=3D"color: #660;" class=3D"styled-by-prettify">,</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">,</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">,</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"> </span><span style=3D"color: #660;" class=3D"styled-by-pret=
tify">,</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </=
span><span style=3D"color: #066;" class=3D"styled-by-prettify">12</span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">);</span></div></cod=
e></div><br></div><div>Some might prefer it, some might dislike it and stic=
k with the "default" keyword and some would allow both.&nbsp;Personally&nbs=
p;I don't have anything against any of these options.</div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_1739_21792476.1367461983139--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Thu, 2 May 2013 10:29:48 +0530
Raw View
--001a11c33a5292680d04dbb51a51
Content-Type: text/plain; charset=ISO-8859-1

> The IDE showing names doesn't help much.  The difference is:
>
> foo(10, default, default, default, 12, default)
> vs
> foo(.x = 10, .z = 12)
>
> Some people might find the second easier to read and understand.  (And
> some might prefer the first because it doesn't "hide" as much.)
>

By IDE showing names I meant this. We type the following
foo(10, default, default, default, 12, default)
But the IDE shows it as
foo(*param1:* 10, *param2:* default, *param3:* default, *param4:* default, *
param5:* 12);

This is similar to IDE using a special character to show spaces, tabs &
newlines. I don't see any difference between IDE doing this and we doing
it. The existing code also works with this. We need not have a language
feature which can be done better by the IDE. I agree that it will not work
with other general purpose editors. Other than that is there any use of
named parameters?

Regards,
Hariharan S

--

---
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/?hl=en.



--001a11c33a5292680d04dbb51a51
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><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-left-style:solid;p=
adding-left:1ex">
<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><div=
>The IDE showing names doesn&#39;t help much.=A0 The difference is:<br>
<br></div><div>foo(10, default, default, default, 12, default)<br></div><di=
v>vs<br></div><div>foo(.x =3D 10, .z =3D 12)<br><br></div><div>Some people =
might find the second easier to read and understand.=A0 (And some might pre=
fer the first because it doesn&#39;t &quot;hide&quot; as much.)</div>
</div></div></div></blockquote><div><br></div><div style>By IDE showing nam=
es I meant this. We type the following</div><div style>foo(10, default, def=
ault, default, 12, default)<br></div><div style>But the IDE shows it as</di=
v>
<div style>foo(<i><b>param1:</b></i> 10, <i><b>param2:</b></i> default, <i>=
<b>param3:</b></i> default, <i><b>param4:</b></i> default, <i><b>param5:</b=
></i> 12);</div><div style><br></div><div style>This is similar to IDE usin=
g a special character to show spaces, tabs &amp; newlines. I don&#39;t see =
any difference between IDE doing this and we doing it. The existing code al=
so works with this. We need not have a language feature which can be done b=
etter by the IDE. I agree that it will not work with other general purpose =
editors. Other than that is there any use of named parameters?</div>
<div style><br></div><div style>Regards,</div><div style>Hariharan S</div><=
div style><br></div></div></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--001a11c33a5292680d04dbb51a51--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Thu, 2 May 2013 10:50:05 +0530
Raw View
--f46d040838b31bb7a604dbb56350
Content-Type: text/plain; charset=ISO-8859-1

> Why would we have to chose between the proposed idea and named parameters?
> Both are interesting. The proposed idea doesn't get in the way of
> those preferring named parameters (if they ever get into the standard...).
> Personally I like it; it's simple, doesn't add complexity and doesn't get
> in the way of anything. It is not because there are workarounds and that we
> could live without it that it should not be considered (think about
> range-based for loops; they were never "needed" but they were added).
>
About the proposed idea, two things that cross my mind.
>
> *1. Default for first parameters (and not only last ones).*
> It could now also be possible to have default parameters which are not the
> last ones. This is something new that I would put in the same proposal. For
> example:
> void foo(int=0, int=1, int, int, int) {}
> foo(default, default, 2, 3, 4);
>
> Of course there would be no way to use those default values without using
> the "default" keyword. (or by using the alternate syntax; see 2.)
>
>
This is an interesting idea which can also be explored.


> *2. Omitting parameter instead of the "default" keyword*
> Why not calling without any keywords between the comas to signify to use
> the default? Example from the previous post:
> foo(10, default, default, default, 12, default);
>
> would become:
> foo(10, , , , 12);
>
> Some might prefer it, some might dislike it and stick with the "default"
> keyword and some would allow both. Personally I don't have anything against
> any of these options.
>
> I considered leaving blank initially. But it does not make the language
specification any simpler. Moreover, if you accidentally type an extra
comma or leave a comma it might result in a difficult to catch bug. Using
default makes the intention explicit.

Regards,
Hariharan S

--

---
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/?hl=en.



--f46d040838b31bb7a604dbb56350
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><div class=3D"gmail_quote">=
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Why would we have to chose between the propo=
sed idea and named parameters? Both are interesting. The proposed idea does=
n&#39;t get in the way of those=A0preferring=A0named parameters (if they ev=
er get into the standard...).<div>
Personally I like it; it&#39;s simple, doesn&#39;t add complexity and doesn=
&#39;t get in the way of anything. It is not because there are workarounds =
and that we could live without it that it should not be considered (think a=
bout range-based for loops; they were never &quot;needed&quot; but they wer=
e added).=A0</div>
</blockquote><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><div></div><div>About the propo=
sed idea, two things that cross my mind.</div><div><br></div><div><b>1. Def=
ault for first parameters (and not only last ones).</b></div>
<div>It could now also be possible to have default parameters which are not=
 the last ones. This is something new that I would put in the same proposal=
.. For example:</div><div style=3D"background-color:rgb(250,250,250);border:=
1px solid rgb(187,187,187);word-wrap:break-word">
<code><div><span style=3D"color:#008">void</span><span style> foo</span><sp=
an style=3D"color:#660">(</span><span style=3D"color:#008">int</span><span =
style=3D"color:#660">=3D</span><span style=3D"color:#066">0</span><span sty=
le=3D"color:#660">,</span><span style> </span><span style=3D"color:#008">in=
t</span><span style=3D"color:#660">=3D</span><span style=3D"color:#066">1</=
span><span style=3D"color:#660">,</span><span style> </span><span style=3D"=
color:#008">int</span><span style=3D"color:#660">,</span><span style> </spa=
n><span style=3D"color:#008">int</span><span style=3D"color:#660">,</span><=
span style> </span><span style=3D"color:#008">int</span><span style=3D"colo=
r:#660">)</span><span style> </span><span style=3D"color:#660">{}</span><sp=
an style><br>
foo</span><span style=3D"color:#660">(</span><span style=3D"color:#008">def=
ault</span><span style=3D"color:#660">,</span><span style> </span><span sty=
le=3D"color:#008">default</span><span style=3D"color:#660">,</span><span st=
yle> </span><span style=3D"color:#066">2</span><span style=3D"color:#660">,=
</span><span style> </span><span style=3D"color:#066">3</span><span style=
=3D"color:#660">,</span><span style> </span><span style=3D"color:#066">4</s=
pan><span style=3D"color:#660">);</span></div>
</code></div><div><br></div><div>Of course there would be no way to use tho=
se default values without using the &quot;default&quot; keyword. (or by usi=
ng the alternate syntax; see 2.)</div><div><br></div></blockquote><div>
<br></div><div style>This is an interesting idea which can also be explored=
..</div><div style>=A0</div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div></div><div><=
b>2. Omitting parameter instead of the &quot;default&quot; keyword</b></div=
>
<div>Why not calling without any keywords between the comas to signify to u=
se the default? Example from the previous post:</div><div><div style=3D"bac=
kground-color:rgb(250,250,250);border:1px solid rgb(187,187,187);word-wrap:=
break-word">
<code><div><span style>foo</span><span style=3D"color:#660">(</span><span s=
tyle=3D"color:#066">10</span><span style=3D"color:#660">,</span><span style=
> </span><span style=3D"color:#008">default</span><span style=3D"color:#660=
">,</span><span style> </span><span style=3D"color:#008">default</span><spa=
n style=3D"color:#660">,</span><span style> </span><span style=3D"color:#00=
8">default</span><span style=3D"color:#660">,</span><span style> </span><sp=
an style=3D"color:#066">12</span><span style=3D"color:#660">,</span><span s=
tyle> </span><span style=3D"color:#008">default</span><span style=3D"color:=
#660">);</span></div>
</code></div><br></div><div>would become:</div><div><div style=3D"backgroun=
d-color:rgb(250,250,250);border:1px solid rgb(187,187,187);word-wrap:break-=
word"><code><div><span style>foo</span><span style=3D"color:#660">(</span><=
span style=3D"color:#066">10</span><span style=3D"color:#660">,</span><span=
 style> </span><span style=3D"color:#660">,</span><span style> </span><span=
 style=3D"color:#660">,</span><span style> </span><span style=3D"color:#660=
">,</span><span style> </span><span style=3D"color:#066">12</span><span sty=
le=3D"color:#660">);</span></div>
</code></div><br></div><div>Some might prefer it, some might dislike it and=
 stick with the &quot;default&quot; keyword and some would allow both.=A0Pe=
rsonally=A0I don&#39;t have anything against any of these options.</div><di=
v class=3D"HOEnZb">
<div class=3D"h5">

<p></p></div></div></blockquote></div>I considered leaving blank initially.=
 But it does not make the language specification any simpler. Moreover, if =
you accidentally type an extra comma or leave a comma it might result in a =
difficult to catch bug. Using default makes the intention explicit.</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra" style>Regar=
ds,</div><div class=3D"gmail_extra" style>Hariharan S</div><div class=3D"gm=
ail_extra" style><br></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--f46d040838b31bb7a604dbb56350--

.


Author: "J. Daniel Garcia" <josedaniel.garcia@uc3m.es>
Date: Thu, 2 May 2013 05:50:05 -0500
Raw View
--089e014950eeb5047e04dbba011d
Content-Type: text/plain; charset=ISO-8859-1

Any IDE solution assumes you are using an IDE which is just one way of
doing things. It is not the only way of doing things. And this also assumes
that the IDE is also used for other tasks (e.g. code reviews).


On Wed, May 1, 2013 at 11:59 PM, Hariharan Subramanian <tohari@gmail.com>wrote:

>
> The IDE showing names doesn't help much.  The difference is:
>>
>> foo(10, default, default, default, 12, default)
>> vs
>> foo(.x = 10, .z = 12)
>>
>> Some people might find the second easier to read and understand.  (And
>> some might prefer the first because it doesn't "hide" as much.)
>>
>
> By IDE showing names I meant this. We type the following
> foo(10, default, default, default, 12, default)
> But the IDE shows it as
> foo(*param1:* 10, *param2:* default, *param3:* default, *param4:*default,
> *param5:* 12);
>
> This is similar to IDE using a special character to show spaces, tabs &
> newlines. I don't see any difference between IDE doing this and we doing
> it. The existing code also works with this. We need not have a language
> feature which can be done better by the IDE. I agree that it will not work
> with other general purpose editors. Other than that is there any use of
> named parameters?
>
> Regards,
> Hariharan S
>
>  --
>
> ---
> 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/?hl=en.
>
>
>

--

---
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/?hl=en.



--089e014950eeb5047e04dbba011d
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Any IDE solution assumes you are using an IDE which is jus=
t one way of doing things. It is not the only way of doing things. And this=
 also assumes that the IDE is also used for other tasks (e.g. code reviews)=
..<div class=3D"gmail_extra">

<br><br><div class=3D"gmail_quote">On Wed, May 1, 2013 at 11:59 PM, Harihar=
an Subramanian <span dir=3D"ltr">&lt;<a href=3D"mailto:tohari@gmail.com" ta=
rget=3D"_blank">tohari@gmail.com</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><div class=3D"gmail_quote">=
<div class=3D"im"><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 class=3D"gmail_extra"><div class=3D"gmail_quote"><div=
>The IDE showing names doesn&#39;t help much.=A0 The difference is:<br>
<br></div><div>foo(10, default, default, default, 12, default)<br></div><di=
v>vs<br></div><div>foo(.x =3D 10, .z =3D 12)<br><br></div><div>Some people =
might find the second easier to read and understand.=A0 (And some might pre=
fer the first because it doesn&#39;t &quot;hide&quot; as much.)</div>


</div></div></div></blockquote><div><br></div></div><div>By IDE showing nam=
es I meant this. We type the following</div><div class=3D"im"><div>foo(10, =
default, default, default, 12, default)<br></div></div><div>But the IDE sho=
ws it as</div>


<div>foo(<i><b>param1:</b></i> 10, <i><b>param2:</b></i> default, <i><b>par=
am3:</b></i> default, <i><b>param4:</b></i> default, <i><b>param5:</b></i> =
12);</div><div><br></div><div>This is similar to IDE using a special charac=
ter to show spaces, tabs &amp; newlines. I don&#39;t see any difference bet=
ween IDE doing this and we doing it. The existing code also works with this=
.. We need not have a language feature which can be done better by the IDE. =
I agree that it will not work with other general purpose editors. Other tha=
n that is there any use of named parameters?</div>


<div><br></div><div>Regards,</div><div>Hariharan S</div><div><br></div></di=
v></div></div><div class=3D"HOEnZb"><div class=3D"h5">

<p></p>

-- <br>
=A0<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%2Bunsubscribe@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/?hl=3Den" target=3D"_blank">http://groups.google.com/a/isocpp=
..org/group/std-proposals/?hl=3Den</a>.<br>
=A0<br>
=A0<br>
</div></div></blockquote></div><br><br clear=3D"all"><div><br></div><br></d=
iv></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--089e014950eeb5047e04dbba011d--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Thu, 2 May 2013 17:54:18 +0530
Raw View
--001a11c235dc4255ef04dbbb503d
Content-Type: text/plain; charset=ISO-8859-1

> Any IDE solution assumes you are using an IDE which is just one way of
> doing things. It is not the only way of doing things. And this also assumes
> that the IDE is also used for other tasks (e.g. code reviews).
>

Yes. When we are viewing the code through any workflow we should see the
name of the parameters.

There is one more use case for which named parameters are useful. Addition
and deletion of parameters. In this case, because of the ordering, the
value I originally passed for param_i might go to param_j after the
modification. But still, as Alex mentioned, both (middle default parameters
and named parameters) do not get into the way of each other. Middle default
parameters can exist for its simplicity and named parameters for its power.

Regards,
Hariharan S

--

---
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/?hl=en.



--001a11c235dc4255ef04dbbb503d
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><div class=3D"gmail_quote">=
<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">Any IDE solution assumes yo=
u are using an IDE which is just one way of doing things. It is not the onl=
y way of doing things. And this also assumes that the IDE is also used for =
other tasks (e.g. code reviews).</div>
</blockquote><div style><br></div><div style>Yes. When we are viewing the c=
ode through any workflow we should see the name of the parameters.</div><di=
v style><br></div><div style>There is one more use case for which named par=
ameters are useful. Addition and deletion of parameters. In this case, beca=
use of the ordering, the value I originally passed for param_i might go to =
param_j after the modification. But still, as Alex mentioned, both (middle =
default parameters and named parameters) do not get into the way of each ot=
her. Middle default parameters can exist for its simplicity and named param=
eters for its power.</div>
<div style><br></div><div style>Regards,</div><div style>Hariharan S</div><=
div style><br></div></div></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--001a11c235dc4255ef04dbbb503d--

.


Author: "J. Daniel Garcia" <josedaniel.garcia@uc3m.es>
Date: Thu, 2 May 2013 08:13:15 -0500
Raw View
--047d7bd76aecb86f6204dbbc0127
Content-Type: text/plain; charset=ISO-8859-1

My point about IDE is that you are precluding I am using an IDE. But
actually there are other ways (e.g. using vi or emacs or whatever editor
you like). Thus the language evolution cannot rest in the assumption that
an IDE is being used. Otherwise, we would need to standardize IDEs (what I
hope nobody is thinking about).

On the other hand, there is a long history of named parameters in the Ada
programming language. I do not have the feeling that they are heavily used,
but I do not have experimental data.

Besides, the combination of this proposal and named parameters may
encourage interfaces with high number of parameters. I think that is not a
desirable thing. Many software quality metrics will say that high number of
parameters in an interface increases the complexity and decreases
maintainability. Besides, for certain implementations this style may hurt
performance.

Thus, I think a relevant question is:

Do we want to promote styles with high number of function parameters?


On Thu, May 2, 2013 at 7:24 AM, Hariharan Subramanian <tohari@gmail.com>wrote:

>
> Any IDE solution assumes you are using an IDE which is just one way of
>> doing things. It is not the only way of doing things. And this also assumes
>> that the IDE is also used for other tasks (e.g. code reviews).
>>
>
> Yes. When we are viewing the code through any workflow we should see the
> name of the parameters.
>
> There is one more use case for which named parameters are useful. Addition
> and deletion of parameters. In this case, because of the ordering, the
> value I originally passed for param_i might go to param_j after the
> modification. But still, as Alex mentioned, both (middle default parameters
> and named parameters) do not get into the way of each other. Middle default
> parameters can exist for its simplicity and named parameters for its power.
>
> Regards,
> Hariharan S
>
>  --
>
> ---
> 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/?hl=en.
>
>
>

--

---
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/?hl=en.



--047d7bd76aecb86f6204dbbc0127
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">My point about IDE is that you are precluding I am using a=
n IDE. But actually there are other ways (e.g. using vi or emacs or whateve=
r editor you like). Thus the language evolution cannot rest in the assumpti=
on that an IDE is being used. Otherwise, we would need to standardize IDEs =
(what I hope nobody is thinking about).<div>

<br></div><div>On the other hand, there is a long history of named paramete=
rs in the Ada programming language. I do not have the feeling that they are=
 heavily used, but I do not have experimental data.</div><div><br></div>

<div>Besides, the combination of this proposal and named parameters may enc=
ourage interfaces with high number of parameters. I think that is not a des=
irable thing. Many software quality metrics will say that high number of pa=
rameters in an interface increases the complexity and decreases maintainabi=
lity. Besides, for certain implementations this style may hurt performance.=
</div>

<div><br></div><div>Thus, I think a relevant question is:=A0</div><div><br>=
</div><div>Do we want to promote styles with high number of function parame=
ters?<br><div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On T=
hu, May 2, 2013 at 7:24 AM, Hariharan Subramanian <span dir=3D"ltr">&lt;<a =
href=3D"mailto:tohari@gmail.com" target=3D"_blank">tohari@gmail.com</a>&gt;=
</span> wrote:<br>

<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"><br><div class=3D"gmail_ext=
ra"><div class=3D"gmail_quote"><div class=3D"im"><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex">

<div dir=3D"ltr">Any IDE solution assumes you are using an IDE which is jus=
t one way of doing things. It is not the only way of doing things. And this=
 also assumes that the IDE is also used for other tasks (e.g. code reviews)=
..</div>


</blockquote><div><br></div></div><div>Yes. When we are viewing the code th=
rough any workflow we should see the name of the parameters.</div><div><br>=
</div><div>There is one more use case for which named parameters are useful=
.. Addition and deletion of parameters. In this case, because of the orderin=
g, the value I originally passed for param_i might go to param_j after the =
modification. But still, as Alex mentioned, both (middle default parameters=
 and named parameters) do not get into the way of each other. Middle defaul=
t parameters can exist for its simplicity and named parameters for its powe=
r.</div>


<div><br></div><div>Regards,</div><div>Hariharan S</div><div><br></div></di=
v></div></div><div class=3D"HOEnZb"><div class=3D"h5">

<p></p>

-- <br>
=A0<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%2Bunsubscribe@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/?hl=3Den" target=3D"_blank">http://groups.google.com/a/isocpp=
..org/group/std-proposals/?hl=3Den</a>.<br>
=A0<br>
=A0<br>
</div></div></blockquote></div><br><br clear=3D"all"><div><br></div></div><=
/div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--047d7bd76aecb86f6204dbbc0127--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Thu, 2 May 2013 19:23:10 +0530
Raw View
--001a11c235dc17b0e804dbbc8e40
Content-Type: text/plain; charset=ISO-8859-1

When I first proposed the IDE method, I did not take into consideration the
second usage (deletion and addition) of the named parameters. This cannot
be solved by the IDE method. Hence IDE method is less than satisfactory.

> Besides, the combination of this proposal and named parameters may
encourage interfaces with high number of parameters... Do we want to
promote styles with high number of function parameters?
Could you prove the assertion - this proposal in combination with named
parameters encourages interface with high number of parameters. Correct me
if I am wrong - AFAIK other programming languages do not have this feature
and hence there does not exist any prior data.

I think If we are using a default parameter then instead of manually
writing the default values when we call the function we just write the
keyword "default". Otherwise it should not encourage anything.

Regards,
Hariharan S



On Thu, May 2, 2013 at 6:43 PM, J. Daniel Garcia
<josedaniel.garcia@uc3m.es>wrote:

> My point about IDE is that you are precluding I am using an IDE. But
> actually there are other ways (e.g. using vi or emacs or whatever editor
> you like). Thus the language evolution cannot rest in the assumption that
> an IDE is being used. Otherwise, we would need to standardize IDEs (what I
> hope nobody is thinking about).
>
> On the other hand, there is a long history of named parameters in the Ada
> programming language. I do not have the feeling that they are heavily used,
> but I do not have experimental data.
>
> Besides, the combination of this proposal and named parameters may
> encourage interfaces with high number of parameters. I think that is not a
> desirable thing. Many software quality metrics will say that high number of
> parameters in an interface increases the complexity and decreases
> maintainability. Besides, for certain implementations this style may hurt
> performance.
>
> Thus, I think a relevant question is:
>
> Do we want to promote styles with high number of function parameters?
>
>
> On Thu, May 2, 2013 at 7:24 AM, Hariharan Subramanian <tohari@gmail.com>wrote:
>
>>
>> Any IDE solution assumes you are using an IDE which is just one way of
>>> doing things. It is not the only way of doing things. And this also assumes
>>> that the IDE is also used for other tasks (e.g. code reviews).
>>>
>>
>> Yes. When we are viewing the code through any workflow we should see the
>> name of the parameters.
>>
>> There is one more use case for which named parameters are useful.
>> Addition and deletion of parameters. In this case, because of the ordering,
>> the value I originally passed for param_i might go to param_j after the
>> modification. But still, as Alex mentioned, both (middle default parameters
>> and named parameters) do not get into the way of each other. Middle default
>> parameters can exist for its simplicity and named parameters for its power.
>>
>> Regards,
>> Hariharan S
>>
>>  --
>>
>> ---
>> 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/?hl=en.
>>
>>
>>
>
>
>
>  --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=en
> .
> To unsubscribe from this group and all its topics, 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/?hl=en.
>
>
>

--

---
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/?hl=en.



--001a11c235dc17b0e804dbbc8e40
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">When I first proposed the IDE method, I did not take into =
consideration the second usage (deletion and addition) of the named paramet=
ers. This cannot be solved by the IDE method. Hence IDE method is less than=
 satisfactory.<div>
<br></div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">=
&gt; Besides, the combination of this proposal and named parameters may enc=
ourage interfaces with high number of parameters...=A0</span><span style=3D=
"font-family:arial,sans-serif;font-size:13px">Do we want to promote styles =
with high number of function parameters?</span><br>
</div><div style><span style=3D"font-family:arial,sans-serif;font-size:13px=
">Could you prove the assertion - this proposal in combination with named p=
arameters encourages interface with high number of parameters. Correct me i=
f I am wrong - AFAIK other programming languages do not have this feature a=
nd hence there does not exist any prior data.</span></div>
<div style><span style=3D"font-family:arial,sans-serif;font-size:13px"><br>=
</span></div><div style><span style=3D"font-family:arial,sans-serif;font-si=
ze:13px">I think If we are using a default parameter then instead of manual=
ly writing the default values when we call the function we just write the k=
eyword &quot;default&quot;. Otherwise it should not encourage anything.</sp=
an></div>
<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div><div style><span style=3D"font-family:arial,sans-serif;font-size:13p=
x">Regards,</span></div><div style><span style=3D"font-family:arial,sans-se=
rif;font-size:13px">Hariharan S</span></div>
<div style><span style=3D"font-family:arial,sans-serif;font-size:13px"><br>=
</span></div></div><div class=3D"gmail_extra"><br><br><div class=3D"gmail_q=
uote">On Thu, May 2, 2013 at 6:43 PM, J. Daniel Garcia <span dir=3D"ltr">&l=
t;<a href=3D"mailto:josedaniel.garcia@uc3m.es" target=3D"_blank">josedaniel=
..garcia@uc3m.es</a>&gt;</span> wrote:<br>
<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">My point about IDE is that =
you are precluding I am using an IDE. But actually there are other ways (e.=
g. using vi or emacs or whatever editor you like). Thus the language evolut=
ion cannot rest in the assumption that an IDE is being used. Otherwise, we =
would need to standardize IDEs (what I hope nobody is thinking about).<div>


<br></div><div>On the other hand, there is a long history of named paramete=
rs in the Ada programming language. I do not have the feeling that they are=
 heavily used, but I do not have experimental data.</div><div><br></div>


<div>Besides, the combination of this proposal and named parameters may enc=
ourage interfaces with high number of parameters. I think that is not a des=
irable thing. Many software quality metrics will say that high number of pa=
rameters in an interface increases the complexity and decreases maintainabi=
lity. Besides, for certain implementations this style may hurt performance.=
</div>


<div><br></div><div>Thus, I think a relevant question is:=A0</div><div><br>=
</div><div>Do we want to promote styles with high number of function parame=
ters?<br><div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote"><div=
>
<div class=3D"h5">On Thu, May 2, 2013 at 7:24 AM, Hariharan Subramanian <sp=
an dir=3D"ltr">&lt;<a href=3D"mailto:tohari@gmail.com" target=3D"_blank">to=
hari@gmail.com</a>&gt;</span> wrote:<br>

</div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div><div class=3D"h5"><div dir=
=3D"ltr"><br><div class=3D"gmail_extra"><div class=3D"gmail_quote"><div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex">


<div dir=3D"ltr">Any IDE solution assumes you are using an IDE which is jus=
t one way of doing things. It is not the only way of doing things. And this=
 also assumes that the IDE is also used for other tasks (e.g. code reviews)=
..</div>



</blockquote><div><br></div></div><div>Yes. When we are viewing the code th=
rough any workflow we should see the name of the parameters.</div><div><br>=
</div><div>There is one more use case for which named parameters are useful=
.. Addition and deletion of parameters. In this case, because of the orderin=
g, the value I originally passed for param_i might go to param_j after the =
modification. But still, as Alex mentioned, both (middle default parameters=
 and named parameters) do not get into the way of each other. Middle defaul=
t parameters can exist for its simplicity and named parameters for its powe=
r.</div>



<div><br></div><div>Regards,</div><div>Hariharan S</div><div><br></div></di=
v></div></div></div></div><div class=3D"im"><div><div>

<p></p>

-- <br>
=A0<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%2Bunsubscribe@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/?hl=3Den" target=3D"_blank">http://groups.google.com/a/isocpp=
..org/group/std-proposals/?hl=3Den</a>.<br>
=A0<br>
=A0<br>
</div></div></div></blockquote></div><br><br clear=3D"all"><div><br></div><=
/div></div></div><div class=3D"HOEnZb"><div class=3D"h5">

<p></p>

-- <br>
=A0<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=3Den" target=
=3D"_blank">https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4t=
WQEMqEH8s/unsubscribe?hl=3Den</a>.<br>

To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals%2Bunsubscribe@isocpp.org" target=3D"_blank">std-pr=
oposals+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/?hl=3Den" target=3D"_blank">http://groups.google.com/a/isocpp=
..org/group/std-proposals/?hl=3Den</a>.<br>
=A0<br>
=A0<br>
</div></div></blockquote></div><br></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--001a11c235dc17b0e804dbbc8e40--

.


Author: Vincent Jacquet <vjacquet@flowgroup.fr>
Date: Thu, 2 May 2013 07:58:39 -0700 (PDT)
Raw View
------=_Part_235_4981717.1367506719701
Content-Type: text/plain; charset=ISO-8859-1

Actually, named parameters exists in several languages (see
<http://en.wikipedia.org/wiki/Named_parameter>). Visual Basic had it for a
while and it's been added recently in C# 4.
As far as I know, one of the main reason to add named parameters in c#  was
to improve interop with COM, as quite a few methods have a lot of
parameters. You might want to take a look at the ConvertToTable method on
page http://msdn.microsoft.com/en-us/library/dd264738.aspx). It has lots of
parameters therefore named parameters are very usefull for readability in
this context.

Yet I am not sure we need this in c++. I think we have better alternatives,
such as, for instance, declaring a ConvertToTableSettings struct.

As for allowing "default" parameter in the middle, it has some appeal. I
mean it is "not fair" that I must omit value2 if I want to omit value1
(using you example).
But we are speaking of "foo" functions. Do you have real life cases where
you want to do that?

Thanks,
Vincent JACQUET

On Thursday, May 2, 2013 3:53:10 PM UTC+2, Hariharan Subramanian wrote:
>
> When I first proposed the IDE method, I did not take into consideration
> the second usage (deletion and addition) of the named parameters. This
> cannot be solved by the IDE method. Hence IDE method is less than
> satisfactory.
>
> > Besides, the combination of this proposal and named parameters may
> encourage interfaces with high number of parameters... Do we want to
> promote styles with high number of function parameters?
> Could you prove the assertion - this proposal in combination with named
> parameters encourages interface with high number of parameters. Correct me
> if I am wrong - AFAIK other programming languages do not have this feature
> and hence there does not exist any prior data.
>
> I think If we are using a default parameter then instead of manually
> writing the default values when we call the function we just write the
> keyword "default". Otherwise it should not encourage anything.
>
> Regards,
> Hariharan S
>
>
>
> On Thu, May 2, 2013 at 6:43 PM, J. Daniel Garcia <josedani...@uc3m.es<javascript:>
> > wrote:
>
>> My point about IDE is that you are precluding I am using an IDE. But
>> actually there are other ways (e.g. using vi or emacs or whatever editor
>> you like). Thus the language evolution cannot rest in the assumption that
>> an IDE is being used. Otherwise, we would need to standardize IDEs (what I
>> hope nobody is thinking about).
>>
>> On the other hand, there is a long history of named parameters in the Ada
>> programming language. I do not have the feeling that they are heavily used,
>> but I do not have experimental data.
>>
>> Besides, the combination of this proposal and named parameters may
>> encourage interfaces with high number of parameters. I think that is not a
>> desirable thing. Many software quality metrics will say that high number of
>> parameters in an interface increases the complexity and decreases
>> maintainability. Besides, for certain implementations this style may hurt
>> performance.
>>
>> Thus, I think a relevant question is:
>>
>> Do we want to promote styles with high number of function parameters?
>>
>>
>> On Thu, May 2, 2013 at 7:24 AM, Hariharan Subramanian <toh...@gmail.com<javascript:>
>> > wrote:
>>
>>>
>>> Any IDE solution assumes you are using an IDE which is just one way of
>>>> doing things. It is not the only way of doing things. And this also assumes
>>>> that the IDE is also used for other tasks (e.g. code reviews).
>>>>
>>>
>>> Yes. When we are viewing the code through any workflow we should see the
>>> name of the parameters.
>>>
>>> There is one more use case for which named parameters are useful.
>>> Addition and deletion of parameters. In this case, because of the ordering,
>>> the value I originally passed for param_i might go to param_j after the
>>> modification. But still, as Alex mentioned, both (middle default parameters
>>> and named parameters) do not get into the way of each other. Middle default
>>> parameters can exist for its simplicity and named parameters for its power.
>>>
>>> Regards,
>>> Hariharan S
>>>
>>>  --
>>>
>>> ---
>>> 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-proposal...@isocpp.org <javascript:>.
>>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>>> Visit this group at
>>> http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.
>>>
>>>
>>>
>>
>>
>>
>>  --
>>
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=en
>> .
>> To unsubscribe from this group and all its topics, send an email to
>> std-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> Visit this group at
>> http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.
>>
>>
>>
>
>

--

---
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/?hl=en.



------=_Part_235_4981717.1367506719701
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Actually, named parameters exists in several languages (see &lt;http://en.w=
ikipedia.org/wiki/Named_parameter&gt;). Visual Basic had it for a while and=
 it's been added recently in C# 4.<div>As far as I know, one of the main re=
ason to add named parameters in c# &nbsp;was to improve interop with COM, a=
s quite a few methods have a lot of parameters. You might want to take a lo=
ok at the ConvertToTable method on page&nbsp;http://msdn.microsoft.com/en-u=
s/library/dd264738.aspx). It has lots of parameters therefore named paramet=
ers are very usefull for readability in this context.</div><div><br></div><=
div>Yet I am not sure we need this in c++. I think we have better alternati=
ves, such as, for instance, declaring a ConvertToTableSettings struct.</div=
><div><br></div><div>As for allowing "default" parameter in the middle, it =
has some appeal. I mean it is "not fair" that I must omit value2 if I want =
to omit value1 (using you example).</div><div>But we are speaking of "foo" =
functions. Do you have real life cases where you want to do that?&nbsp;</di=
v><div><br></div><div>Thanks,</div><div>Vincent JACQUET<br><br>On Thursday,=
 May 2, 2013 3:53:10 PM UTC+2, Hariharan Subramanian wrote:<blockquote clas=
s=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #c=
cc solid;padding-left: 1ex;"><div dir=3D"ltr">When I first proposed the IDE=
 method, I did not take into consideration the second usage (deletion and a=
ddition) of the named parameters. This cannot be solved by the IDE method. =
Hence IDE method is less than satisfactory.<div>
<br></div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">=
&gt; Besides, the combination of this proposal and named parameters may enc=
ourage interfaces with high number of parameters...&nbsp;</span><span style=
=3D"font-family:arial,sans-serif;font-size:13px">Do we want to promote styl=
es with high number of function parameters?</span><br>
</div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">Coul=
d you prove the assertion - this proposal in combination with named paramet=
ers encourages interface with high number of parameters. Correct me if I am=
 wrong - AFAIK other programming languages do not have this feature and hen=
ce there does not exist any prior data.</span></div>
<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">I t=
hink If we are using a default parameter then instead of manually writing t=
he default values when we call the function we just write the keyword "defa=
ult". Otherwise it should not encourage anything.</span></div>
<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">Reg=
ards,</span></div><div><span style=3D"font-family:arial,sans-serif;font-siz=
e:13px">Hariharan S</span></div>
<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div></div><div><br><br><div class=3D"gmail_quote">On Thu, May 2, 2013 at=
 6:43 PM, J. Daniel Garcia <span dir=3D"ltr">&lt;<a href=3D"javascript:" ta=
rget=3D"_blank" gdf-obfuscated-mailto=3D"qCirn1DpOmoJ">josedani...@uc3m.es<=
/a>&gt;</span> wrote:<br>
<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">My point about IDE is that =
you are precluding I am using an IDE. But actually there are other ways (e.=
g. using vi or emacs or whatever editor you like). Thus the language evolut=
ion cannot rest in the assumption that an IDE is being used. Otherwise, we =
would need to standardize IDEs (what I hope nobody is thinking about).<div>


<br></div><div>On the other hand, there is a long history of named paramete=
rs in the Ada programming language. I do not have the feeling that they are=
 heavily used, but I do not have experimental data.</div><div><br></div>


<div>Besides, the combination of this proposal and named parameters may enc=
ourage interfaces with high number of parameters. I think that is not a des=
irable thing. Many software quality metrics will say that high number of pa=
rameters in an interface increases the complexity and decreases maintainabi=
lity. Besides, for certain implementations this style may hurt performance.=
</div>


<div><br></div><div>Thus, I think a relevant question is:&nbsp;</div><div><=
br></div><div>Do we want to promote styles with high number of function par=
ameters?<br><div><br><br><div class=3D"gmail_quote"><div>
<div>On Thu, May 2, 2013 at 7:24 AM, Hariharan Subramanian <span dir=3D"ltr=
">&lt;<a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"qC=
irn1DpOmoJ">toh...@gmail.com</a>&gt;</span> wrote:<br>

</div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div><div><div dir=3D"ltr"><br><=
div><div class=3D"gmail_quote"><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">Any IDE solution assumes you are using an IDE which is jus=
t one way of doing things. It is not the only way of doing things. And this=
 also assumes that the IDE is also used for other tasks (e.g. code reviews)=
..</div>



</blockquote><div><br></div></div><div>Yes. When we are viewing the code th=
rough any workflow we should see the name of the parameters.</div><div><br>=
</div><div>There is one more use case for which named parameters are useful=
.. Addition and deletion of parameters. In this case, because of the orderin=
g, the value I originally passed for param_i might go to param_j after the =
modification. But still, as Alex mentioned, both (middle default parameters=
 and named parameters) do not get into the way of each other. Middle defaul=
t parameters can exist for its simplicity and named parameters for its powe=
r.</div>



<div><br></div><div>Regards,</div><div>Hariharan S</div><div><br></div></di=
v></div></div></div></div><div><div><div>

<p></p>

-- <br>
&nbsp;<br>
--- <br>
You received this message because you are subscribed to the Google Groups "=
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"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"=
qCirn1DpOmoJ">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"qCirn1DpOmoJ">std-pr...@isocpp.org</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den" target=3D"_blank">http://groups.google.com/a/<wbr>i=
socpp.org/group/std-<wbr>proposals/?hl=3Den</a>.<br>
&nbsp;<br>
&nbsp;<br>
</div></div></div></blockquote></div><br><br clear=3D"all"><div><br></div><=
/div></div></div><div><div>

<p></p>

-- <br>
&nbsp;<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups "ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=3Den" target=
=3D"_blank">https://groups.google.com/a/<wbr>isocpp.org/d/topic/std-<wbr>pr=
oposals/4tWQEMqEH8s/<wbr>unsubscribe?hl=3Den</a>.<br>

To unsubscribe from this group and all its topics, send an email to <a href=
=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"qCirn1DpOmoJ">s=
td-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"qCirn1DpOmoJ">std-pr...@isocpp.org</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den" target=3D"_blank">http://groups.google.com/a/<wbr>i=
socpp.org/group/std-<wbr>proposals/?hl=3Den</a>.<br>
&nbsp;<br>
&nbsp;<br>
</div></div></blockquote></div><br></div>
</blockquote></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_235_4981717.1367506719701--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Thu, 2 May 2013 22:01:36 +0530
Raw View
--089e0158c12aa598dc04dbbec49a
Content-Type: text/plain; charset=ISO-8859-1

On Thu, May 2, 2013 at 8:28 PM, Vincent Jacquet <vjacquet@flowgroup.fr>wrote:

> Actually, named parameters exists in several languages (see <
> http://en.wikipedia.org/wiki/Named_parameter>). Visual Basic had it for a
> while and it's been added recently in C# 4.
> As far as I know, one of the main reason to add named parameters in c#
>  was to improve interop with COM, as quite a few methods have a lot of
> parameters. You might want to take a look at the ConvertToTable method on
> page http://msdn.microsoft.com/en-us/library/dd264738.aspx). It has lots
> of parameters therefore named parameters are very usefull for readability
> in this context.
>
> Yet I am not sure we need this in c++. I think we have better
> alternatives, such as, for instance, declaring a ConvertToTableSettings
> struct.
>
> As for allowing "default" parameter in the middle, it has some appeal. I
> mean it is "not fair" that I must omit value2 if I want to omit value1
> (using you example).
> But we are speaking of "foo" functions. Do you have real life cases where
> you want to do that?
>
> Thanks,
> Vincent JACQUET
>
>
> On Thursday, May 2, 2013 3:53:10 PM UTC+2, Hariharan Subramanian wrote:
>
>> When I first proposed the IDE method, I did not take into consideration
>> the second usage (deletion and addition) of the named parameters. This
>> cannot be solved by the IDE method. Hence IDE method is less than
>> satisfactory.
>>
>> > Besides, the combination of this proposal and named parameters may
>> encourage interfaces with high number of parameters... Do we want to
>> promote styles with high number of function parameters?
>> Could you prove the assertion - this proposal in combination with named
>> parameters encourages interface with high number of parameters. Correct me
>> if I am wrong - AFAIK other programming languages do not have this feature
>> and hence there does not exist any prior data.
>>
>> I think If we are using a default parameter then instead of manually
>> writing the default values when we call the function we just write the
>> keyword "default". Otherwise it should not encourage anything.
>>
>> Regards,
>> Hariharan S
>>
>>
>>
>> On Thu, May 2, 2013 at 6:43 PM, J. Daniel Garcia <josedani...@uc3m.es>wrote:
>>
>>> My point about IDE is that you are precluding I am using an IDE. But
>>> actually there are other ways (e.g. using vi or emacs or whatever editor
>>> you like). Thus the language evolution cannot rest in the assumption that
>>> an IDE is being used. Otherwise, we would need to standardize IDEs (what I
>>> hope nobody is thinking about).
>>>
>>> On the other hand, there is a long history of named parameters in the
>>> Ada programming language. I do not have the feeling that they are heavily
>>> used, but I do not have experimental data.
>>>
>>> Besides, the combination of this proposal and named parameters may
>>> encourage interfaces with high number of parameters. I think that is not a
>>> desirable thing. Many software quality metrics will say that high number of
>>> parameters in an interface increases the complexity and decreases
>>> maintainability. Besides, for certain implementations this style may hurt
>>> performance.
>>>
>>> Thus, I think a relevant question is:
>>>
>>> Do we want to promote styles with high number of function parameters?
>>>
>>>
>>> On Thu, May 2, 2013 at 7:24 AM, Hariharan Subramanian <toh...@gmail.com>wrote:
>>>
>>>>
>>>> Any IDE solution assumes you are using an IDE which is just one way of
>>>>> doing things. It is not the only way of doing things. And this also assumes
>>>>> that the IDE is also used for other tasks (e.g. code reviews).
>>>>>
>>>>
>>>> Yes. When we are viewing the code through any workflow we should see
>>>> the name of the parameters.
>>>>
>>>> There is one more use case for which named parameters are useful.
>>>> Addition and deletion of parameters. In this case, because of the ordering,
>>>> the value I originally passed for param_i might go to param_j after the
>>>> modification. But still, as Alex mentioned, both (middle default parameters
>>>> and named parameters) do not get into the way of each other. Middle default
>>>> parameters can exist for its simplicity and named parameters for its power.
>>>>
>>>> Regards,
>>>> Hariharan S
>>>>
>>>>  --
>>>>
>>>> ---
>>>> 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-proposal...@**isocpp.org.
>>>> To post to this group, send email to std-pr...@isocpp.org.
>>>>
>>>> Visit this group at http://groups.google.com/a/**isocpp.org/group/std-*
>>>> *proposals/?hl=en<http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en>
>>>> .
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>  --
>>>
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "ISO C++ Standard - Future Proposals" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/a/**
>>> isocpp.org/d/topic/std-**proposals/4tWQEMqEH8s/**unsubscribe?hl=en<https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=en>
>>> .
>>> To unsubscribe from this group and all its topics, send an email to
>>> std-proposal...@**isocpp.org.
>>> To post to this group, send email to std-pr...@isocpp.org.
>>>
>>> Visit this group at http://groups.google.com/a/**isocpp.org/group/std-**
>>> proposals/?hl=en<http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en>
>>> .
>>>
>>>
>>>
>>
>>  --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=en
> .
> To unsubscribe from this group and all its topics, 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/?hl=en.
>
>
>

--

---
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/?hl=en.



--089e0158c12aa598dc04dbbec49a
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br></div><div class=3D"gmail_extra"><br><br><div class=3D=
"gmail_quote">On Thu, May 2, 2013 at 8:28 PM, Vincent Jacquet <span dir=3D"=
ltr">&lt;<a href=3D"mailto:vjacquet@flowgroup.fr" target=3D"_blank">vjacque=
t@flowgroup.fr</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Actually, named parameters exists in several=
 languages (see &lt;<a href=3D"http://en.wikipedia.org/wiki/Named_parameter=
" target=3D"_blank">http://en.wikipedia.org/wiki/Named_parameter</a>&gt;). =
Visual Basic had it for a while and it&#39;s been added recently in C# 4.<d=
iv>
As far as I know, one of the main reason to add named parameters in c# =A0w=
as to improve interop with COM, as quite a few methods have a lot of parame=
ters. You might want to take a look at the ConvertToTable method on page=A0=
<a href=3D"http://msdn.microsoft.com/en-us/library/dd264738.aspx" target=3D=
"_blank">http://msdn.microsoft.com/en-us/library/dd264738.aspx</a>). It has=
 lots of parameters therefore named parameters are very usefull for readabi=
lity in this context.</div>
<div><br></div><div>Yet I am not sure we need this in c++. I think we have =
better alternatives, such as, for instance, declaring a ConvertToTableSetti=
ngs struct.</div><div><br></div><div>As for allowing &quot;default&quot; pa=
rameter in the middle, it has some appeal. I mean it is &quot;not fair&quot=
; that I must omit value2 if I want to omit value1 (using you example).</di=
v>
<div>But we are speaking of &quot;foo&quot; functions. Do you have real lif=
e cases where you want to do that?=A0</div><div><br></div><div>Thanks,</div=
><div>Vincent JACQUET<div class=3D"im"><br><br>On Thursday, May 2, 2013 3:5=
3:10 PM UTC+2, Hariharan Subramanian wrote:</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div class=3D"im"><div dir=3D"ltr">=
When I first proposed the IDE method, I did not take into consideration the=
 second usage (deletion and addition) of the named parameters. This cannot =
be solved by the IDE method. Hence IDE method is less than satisfactory.<di=
v>

<br></div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">=
&gt; Besides, the combination of this proposal and named parameters may enc=
ourage interfaces with high number of parameters...=A0</span><span style=3D=
"font-family:arial,sans-serif;font-size:13px">Do we want to promote styles =
with high number of function parameters?</span><br>

</div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">Coul=
d you prove the assertion - this proposal in combination with named paramet=
ers encourages interface with high number of parameters. Correct me if I am=
 wrong - AFAIK other programming languages do not have this feature and hen=
ce there does not exist any prior data.</span></div>

<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">I t=
hink If we are using a default parameter then instead of manually writing t=
he default values when we call the function we just write the keyword &quot=
;default&quot;. Otherwise it should not encourage anything.</span></div>

<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">Reg=
ards,</span></div><div><span style=3D"font-family:arial,sans-serif;font-siz=
e:13px">Hariharan S</span></div>

<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div></div></div><div><br><br><div class=3D"gmail_quote"><div class=3D"im=
">On Thu, May 2, 2013 at 6:43 PM, J. Daniel Garcia <span dir=3D"ltr">&lt;<a=
>josedani...@uc3m.es</a>&gt;</span> wrote:<br>

</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"im">My =
point about IDE is that you are precluding I am using an IDE. But actually =
there are other ways (e.g. using vi or emacs or whatever editor you like). =
Thus the language evolution cannot rest in the assumption that an IDE is be=
ing used. Otherwise, we would need to standardize IDEs (what I hope nobody =
is thinking about).<div>



<br></div><div>On the other hand, there is a long history of named paramete=
rs in the Ada programming language. I do not have the feeling that they are=
 heavily used, but I do not have experimental data.</div><div><br></div>



<div>Besides, the combination of this proposal and named parameters may enc=
ourage interfaces with high number of parameters. I think that is not a des=
irable thing. Many software quality metrics will say that high number of pa=
rameters in an interface increases the complexity and decreases maintainabi=
lity. Besides, for certain implementations this style may hurt performance.=
</div>



<div><br></div><div>Thus, I think a relevant question is:=A0</div><div><br>=
</div></div><div><div class=3D"im">Do we want to promote styles with high n=
umber of function parameters?<br></div><div><br><br><div class=3D"gmail_quo=
te">
<div class=3D"im"><div>
<div>On Thu, May 2, 2013 at 7:24 AM, Hariharan Subramanian <span dir=3D"ltr=
">&lt;<a>toh...@gmail.com</a>&gt;</span> wrote:<br>

</div></div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"im"><div><di=
v><div dir=3D"ltr"><br><div><div class=3D"gmail_quote"><div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pa=
dding-left:1ex">



<div dir=3D"ltr">Any IDE solution assumes you are using an IDE which is jus=
t one way of doing things. It is not the only way of doing things. And this=
 also assumes that the IDE is also used for other tasks (e.g. code reviews)=
..</div>




</blockquote><div><br></div></div><div>Yes. When we are viewing the code th=
rough any workflow we should see the name of the parameters.</div><div><br>=
</div><div>There is one more use case for which named parameters are useful=
.. Addition and deletion of parameters. In this case, because of the orderin=
g, the value I originally passed for param_i might go to param_j after the =
modification. But still, as Alex mentioned, both (middle default parameters=
 and named parameters) do not get into the way of each other. Middle defaul=
t parameters can exist for its simplicity and named parameters for its powe=
r.</div>




<div><br></div><div>Regards,</div><div>Hariharan S</div><div><br></div></di=
v></div></div></div></div></div><div><div><div><div class=3D"im">

<p></p>

-- <br>
=A0<br>
--- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br></div>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a>std-proposal...@<u></u>isocpp.org</a>.<br>
To post to this group, send email to <a>std-pr...@isocpp.org</a>.<div class=
=3D"im"><br>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den" target=3D"_blank">http://groups.google.com/a/<u></u=
>isocpp.org/group/std-<u></u>proposals/?hl=3Den</a>.<br>
=A0<br>
=A0<br>
</div></div></div></div></blockquote></div><br><br clear=3D"all"><div><br><=
/div></div></div></div><div><div><div class=3D"im">

<p></p>

-- <br>
=A0<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=3Den" target=
=3D"_blank">https://groups.google.com/a/<u></u>isocpp.org/d/topic/std-<u></=
u>proposals/4tWQEMqEH8s/<u></u>unsubscribe?hl=3Den</a>.<br>
</div>

To unsubscribe from this group and all its topics, send an email to <a>std-=
proposal...@<u></u>isocpp.org</a>.<br>
To post to this group, send email to <a>std-pr...@isocpp.org</a>.<div class=
=3D"im"><br>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den" target=3D"_blank">http://groups.google.com/a/<u></u=
>isocpp.org/group/std-<u></u>proposals/?hl=3Den</a>.<br>
=A0<br>
=A0<br>
</div></div></div></blockquote></div><br></div>
</blockquote></div><div class=3D"HOEnZb"><div class=3D"h5">

<p></p>

-- <br>
=A0<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=3Den" target=
=3D"_blank">https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4t=
WQEMqEH8s/unsubscribe?hl=3Den</a>.<br>

To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals%2Bunsubscribe@isocpp.org" target=3D"_blank">std-pr=
oposals+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/?hl=3Den" target=3D"_blank">http://groups.google.com/a/isocpp=
..org/group/std-proposals/?hl=3Den</a>.<br>
=A0<br>
=A0<br>
</div></div></blockquote></div><br></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--089e0158c12aa598dc04dbbec49a--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Thu, 2 May 2013 22:19:46 +0530
Raw View
--089e0158c3e0a2a33f04dbbf0572
Content-Type: text/plain; charset=ISO-8859-1

Apologies for my last empty message.

On Thu, May 2, 2013 at 8:28 PM, Vincent Jacquet <vjacquet@flowgroup.fr>wrote:
>
>> Actually, named parameters exists in several languages (see <
>> http://en.wikipedia.org/wiki/Named_parameter>). Visual Basic had it for
>> a while and it's been added recently in C# 4.
>> As far as I know, one of the main reason to add named parameters in c#
>>  was to improve interop with COM, as quite a few methods have a lot of
>> parameters. You might want to take a look at the ConvertToTable method on
>> page http://msdn.microsoft.com/en-us/library/dd264738.aspx). It has lots
>> of parameters therefore named parameters are very usefull for readability
>> in this context.
>>
>>
What I meant by "other programming languages do not have this feature" was
default middle param value and not named params.

Yet I am not sure we need this in c++. I think we have better alternatives,
>> such as, for instance, declaring a ConvertToTableSettings struct.
>>
>> As for allowing "default" parameter in the middle, it has some appeal. I
>> mean it is "not fair" that I must omit value2 if I want to omit value1
>> (using you example).
>> But we are speaking of "foo" functions. Do you have real life cases where
>> you want to do that?
>>
>
I can give my experience but without giving the function name and prototype.
1. Once I had to change the value of the penultimate boolean parameter to
an enum. That function was called from 10 different places. I had to change
almost each of them as the last parameter they had was non-default.
2. Few functions that I called had 4 or 5 default values in which third or
the fourth value was non-default. I had to verify every function every time
before calling.

Regards,
Hariharan S

--

---
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/?hl=en.



--089e0158c3e0a2a33f04dbbf0572
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Apologies for my last empty message.<div><br><div class=3D=
"gmail_extra"><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v class=3D"HOEnZb">
<div class=3D"h5"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On =
Thu, May 2, 2013 at 8:28 PM, Vincent Jacquet <span dir=3D"ltr">&lt;<a href=
=3D"mailto:vjacquet@flowgroup.fr" target=3D"_blank">vjacquet@flowgroup.fr</=
a>&gt;</span> wrote:<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Actually, named parameters exists in several=
 languages (see &lt;<a href=3D"http://en.wikipedia.org/wiki/Named_parameter=
" target=3D"_blank">http://en.wikipedia.org/wiki/Named_parameter</a>&gt;). =
Visual Basic had it for a while and it&#39;s been added recently in C# 4.<d=
iv>

As far as I know, one of the main reason to add named parameters in c# =A0w=
as to improve interop with COM, as quite a few methods have a lot of parame=
ters. You might want to take a look at the ConvertToTable method on page=A0=
<a href=3D"http://msdn.microsoft.com/en-us/library/dd264738.aspx" target=3D=
"_blank">http://msdn.microsoft.com/en-us/library/dd264738.aspx</a>). It has=
 lots of parameters therefore named parameters are very usefull for readabi=
lity in this context.</div>

<div><br></div></blockquote></div></div></div></div></blockquote><div>=A0</=
div><div style>What I meant by &quot;other programming languages do not hav=
e this feature&quot; was default middle param value and not named params.=
=A0</div>
<div style><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"HOEnZb"><=
div class=3D"h5"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex">
<div></div><div>Yet I am not sure we need this in c++. I think we have bett=
er alternatives, such as, for instance, declaring a ConvertToTableSettings =
struct.</div><div><br></div><div>As for allowing &quot;default&quot; parame=
ter in the middle, it has some appeal. I mean it is &quot;not fair&quot; th=
at I must omit value2 if I want to omit value1 (using you example).</div>

<div>But we are speaking of &quot;foo&quot; functions. Do you have real lif=
e cases where you want to do that?=A0</div></blockquote></div></div></div><=
/div></blockquote><div><br></div><div style>I can give my experience but wi=
thout giving the function name and prototype.</div>
<div style>1. Once I had to change the value of the penultimate boolean par=
ameter to an enum. That function was called from 10 different places. I had=
 to change almost each of them as the last parameter they had was non-defau=
lt.</div>
<div style>2. Few functions that I called had 4 or 5 default values in whic=
h third or the fourth value was non-default. I had to verify every function=
 every time before calling.</div><div style><br></div><div style>Regards,</=
div>
<div style>Hariharan S</div><div style><br></div></div></div></div></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--089e0158c3e0a2a33f04dbbf0572--

.


Author: Greg Marr <gregmmarr@gmail.com>
Date: Thu, 2 May 2013 21:28:17 -0700 (PDT)
Raw View
------=_Part_371_6765529.1367555298043
Content-Type: text/plain; charset=ISO-8859-1

On Thursday, May 2, 2013 12:49:46 PM UTC-4, Hariharan Subramanian wrote:

> What I meant by "other programming languages do not have this feature" was
> default middle param value and not named params.
>

It's not a mainstream language, but I work with a product-specific
scripting language that allows default middle parameters, and uses the
second syntax above with the simple elimination of the parameter: foo(a, b,
, , e, f)

This language has been in use for probably 25 years, and shares a lot of
syntax with C.

--

---
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/?hl=en.



------=_Part_371_6765529.1367555298043
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<span style=3D"font-size: 13px;">On Thursday, May 2, 2013 12:49:46 PM UTC-4=
, Hariharan Subramanian wrote:</span><br><blockquote class=3D"gmail_quote" =
style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-l=
eft: 1ex;"><div dir=3D"ltr"><div class=3D"gmail_quote"><div><span style=3D"=
font-size: 13px;">What I meant by "other programming languages do not have =
this feature" was default middle param value and not named params.&nbsp;</s=
pan></div></div></div></blockquote><div><br></div><div>It's not a mainstrea=
m language, but I work with a product-specific scripting language that allo=
ws default middle parameters, and uses the second syntax above with the sim=
ple elimination of the parameter: foo(a, b, , , e, f)</div><div><br></div><=
div>This language has been in use for probably 25 years, and shares a lot o=
f syntax with C.</div><div><br></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_371_6765529.1367555298043--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Fri, 3 May 2013 11:45:42 +0530
Raw View
--001a11c34f40dce74804dbca4799
Content-Type: text/plain; charset=ISO-8859-1

Thanks for the info Greg. Will you able to offer comments on the assertion "the
combination of this proposal and named parameters may encourage interfaces
with high number of parameters"?

Regards,
Hariharan S


On Fri, May 3, 2013 at 9:58 AM, Greg Marr <gregmmarr@gmail.com> wrote:

> On Thursday, May 2, 2013 12:49:46 PM UTC-4, Hariharan Subramanian wrote:
>
>> What I meant by "other programming languages do not have this feature"
>> was default middle param value and not named params.
>>
>
> It's not a mainstream language, but I work with a product-specific
> scripting language that allows default middle parameters, and uses the
> second syntax above with the simple elimination of the parameter: foo(a, b,
> , , e, f)
>
> This language has been in use for probably 25 years, and shares a lot of
> syntax with C.
>
>  --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=en
> .
> To unsubscribe from this group and all its topics, 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/?hl=en.
>
>
>

--

---
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/?hl=en.



--001a11c34f40dce74804dbca4799
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Thanks for the info Greg. Will you able to offer comments =
on the assertion &quot;<span style=3D"font-family:arial,sans-serif;font-siz=
e:13px">the combination of this proposal and named parameters may encourage=
 interfaces with high number of parameters&quot;?</span><div>
<span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span></di=
v><div style><span style=3D"font-family:arial,sans-serif;font-size:13px">Re=
gards,</span></div><div style><span style=3D"font-family:arial,sans-serif;f=
ont-size:13px">Hariharan S</span></div>
</div><div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Fri,=
 May 3, 2013 at 9:58 AM, Greg Marr <span dir=3D"ltr">&lt;<a href=3D"mailto:=
gregmmarr@gmail.com" target=3D"_blank">gregmmarr@gmail.com</a>&gt;</span> w=
rote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im"><span style=3D"font-size:1=
3px">On Thursday, May 2, 2013 12:49:46 PM UTC-4, Hariharan Subramanian wrot=
e:</span><br>
<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><span style=3D"font-size:13px">What I meant by &quot;other pr=
ogramming languages do not have this feature&quot; was default middle param=
 value and not named params.=A0</span></div>
</div></div></blockquote><div><br></div></div><div>It&#39;s not a mainstrea=
m language, but I work with a product-specific scripting language that allo=
ws default middle parameters, and uses the second syntax above with the sim=
ple elimination of the parameter: foo(a, b, , , e, f)</div>
<div><br></div><div>This language has been in use for probably 25 years, an=
d shares a lot of syntax with C.</div><div class=3D"HOEnZb"><div class=3D"h=
5"><div><br></div>

<p></p>

-- <br>
=A0<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe?hl=3Den" target=
=3D"_blank">https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4t=
WQEMqEH8s/unsubscribe?hl=3Den</a>.<br>

To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals%2Bunsubscribe@isocpp.org" target=3D"_blank">std-pr=
oposals+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/?hl=3Den" target=3D"_blank">http://groups.google.com/a/isocpp=
..org/group/std-proposals/?hl=3Den</a>.<br>
=A0<br>
=A0<br>
</div></div></blockquote></div><br></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

--001a11c34f40dce74804dbca4799--

.


Author: Greg Marr <gregmmarr@gmail.com>
Date: Fri, 3 May 2013 17:57:39 -0700 (PDT)
Raw View
------=_Part_457_33523283.1367629059915
Content-Type: text/plain; charset=ISO-8859-1

On Friday, May 3, 2013 2:15:42 AM UTC-4, Hariharan Subramanian wrote:

> Thanks for the info Greg. Will you able to offer comments on the assertion
> "the combination of this proposal and named parameters may encourage
> interfaces with high number of parameters"?
>

I don't see what effect middle default parameters would have on named
parameters encouraging interfaces with a high number of parameters. It
seems to me that they can do that quite well on their own.

--

---
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/?hl=en.



------=_Part_457_33523283.1367629059915
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<span style=3D"font-size: 13px;">On Friday, May 3, 2013 2:15:42 AM UTC-4, H=
ariharan Subramanian wrote:</span><br><blockquote class=3D"gmail_quote" sty=
le=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left=
: 1ex;"><div dir=3D"ltr">Thanks for the info Greg. Will you able to offer c=
omments on the assertion "<span style=3D"font-family:arial,sans-serif;font-=
size:13px">the combination of this proposal and named parameters may encour=
age interfaces with high number of parameters"?</span></div></blockquote><d=
iv><br></div><div>I don't see what effect middle default parameters would h=
ave on named parameters encouraging interfaces with a high number of parame=
ters. It seems to me that they can do that quite well on their own.</div><d=
iv><br></div>

<p></p>

-- <br />
&nbsp;<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 std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_457_33523283.1367629059915--

.


Author: Kenshi Takayama <kenshi84@gmail.com>
Date: Sat, 16 Aug 2014 08:08:28 -0700 (PDT)
Raw View
------=_Part_47_1999671130.1408201708195
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I really like this proposal. Any progress?

Kenshi

2013=E5=B9=B45=E6=9C=884=E6=97=A5=E5=9C=9F=E6=9B=9C=E6=97=A5 2=E6=99=8257=
=E5=88=8639=E7=A7=92 UTC+2 Greg Marr:
>
> On Friday, May 3, 2013 2:15:42 AM UTC-4, Hariharan Subramanian wrote:
>
>> Thanks for the info Greg. Will you able to offer comments on the=20
>> assertion "the combination of this proposal and named parameters may=20
>> encourage interfaces with high number of parameters"?
>>
>
> I don't see what effect middle default parameters would have on named=20
> parameters encouraging interfaces with a high number of parameters. It=20
> seems to me that they can do that quite well on their own.
>
>

--=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/.

------=_Part_47_1999671130.1408201708195
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I really like this proposal. Any progress?<div><br></div><=
div>Kenshi<br><br>2013=E5=B9=B45=E6=9C=884=E6=97=A5=E5=9C=9F=E6=9B=9C=E6=97=
=A5 2=E6=99=8257=E5=88=8639=E7=A7=92 UTC+2 Greg Marr:<blockquote class=3D"g=
mail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc sol=
id;padding-left: 1ex;"><span style=3D"font-size:13px">On Friday, May 3, 201=
3 2:15:42 AM UTC-4, Hariharan Subramanian wrote:</span><br><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc =
solid;padding-left:1ex"><div dir=3D"ltr">Thanks for the info Greg. Will you=
 able to offer comments on the assertion "<span style=3D"font-family:arial,=
sans-serif;font-size:13px">the combination of this proposal and named param=
eters may encourage interfaces with high number of parameters"?</span></div=
></blockquote><div><br></div><div>I don't see what effect middle default pa=
rameters would have on named parameters encouraging interfaces with a high =
number of parameters. It seems to me that they can do that quite well on th=
eir own.</div><div><br></div></blockquote></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 />

------=_Part_47_1999671130.1408201708195--

.


Author: gmisocpp@gmail.com
Date: Sat, 16 Aug 2014 16:37:41 -0700 (PDT)
Raw View
------=_Part_11_425851070.1408232261280
Content-Type: text/plain; charset=UTF-8



On Thursday, May 2, 2013 8:41:04 AM UTC+12, Tony V E wrote:
>
>
>
>
> On Wed, May 1, 2013 at 4:50 AM, Hariharan Subramanian <toh...@gmail.com
> <javascript:>> wrote:
>
>>
>> Named parameters solves this problem. But introducing named parameters
>> only for this would be an overkill. Even otherwise, I think named
>> parameters is unnecessary. Cannot the IDE simply display the name of the
>> parameter adjacent to the parameter passed? No need to change the language
>> at all. Named parameters would have been useful during the 1990s but not
>> now.
>>
>> Regards,
>> Hariharan S
>>
>>
>>
>
> The IDE showing names doesn't help much.  The difference is:
>
> foo(10, default, default, default, 12, default)
> vs
> foo(.x = 10, .z = 12)
>
> Some people might find the second easier to read and understand.  (And
> some might prefer the first because it doesn't "hide" as much.)
>

+1 (as they say)

People always want this feature for COM programming on Windows where you
have huge numbers of parameters that are best defaulted.
I don't tend to see the situation anywhere else.

but you still end up with excel.insertSheet(0, default,t
default,default,default) etc. or whatever, as you say.

Named parameters would seem to be far more favourable to that IMHO.

I'm always leery about using default parameters in any form though, I don't
ever seem to have a good experience with them.
I wonder if named parameters might become more useful in web frameworks
down the road but I don't know.

It's interesting to know API's people are actually wrestling with that
warrant this support. One wonders how common they are and if their design
is the fault or not etc.
I know the COM type API's for MS Office made me most think about this topic.


> Tony
>

--

---
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/.

------=_Part_11_425851070.1408232261280
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>On Thursday, May 2, 2013 8:41:04 AM UTC+12, Tony V=
 E wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8=
ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-w=
idth: 1px; border-left-style: solid;"><div dir=3D"ltr"><br><div><br><br><di=
v class=3D"gmail_quote">On Wed, May 1, 2013 at 4:50 AM, Hariharan Subramani=
an <span dir=3D"ltr">&lt;<a onmousedown=3D"this.href=3D'javascript:';return=
 true;" onclick=3D"this.href=3D'javascript:';return true;" href=3D"javascri=
pt:" target=3D"_blank" gdf-obfuscated-mailto=3D"xa2gKGu36jsJ">toh...@gmail.=
com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; paddi=
ng-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px=
; border-left-style: solid;"><div dir=3D"ltr"><div><div class=3D"gmail_quot=
e"><br><div>Named parameters solves this problem. But introducing named par=
ameters only for this would be an overkill. Even otherwise, I think named p=
arameters is unnecessary. Cannot the IDE simply display the name of the par=
ameter adjacent to the parameter passed? No need to change the language at =
all. Named parameters would have been useful during the 1990s but not now.<=
/div>

<div><br></div><div>Regards,</div><div>Hariharan S</div><div><br></div></di=
v></div></div><div><div>&nbsp;</div></div></blockquote><div><br></div><div>=
The IDE showing names doesn't help much.&nbsp; The difference is:<br>
<br></div><div>foo(10, default, default, default, 12, default)<br></div><di=
v>vs<br></div><div>foo(.x =3D 10, .z =3D 12)<br><br></div><div>Some people =
might find the second easier to read and understand.&nbsp; (And some might =
prefer the first because it doesn't "hide" as much.)<br></div></div></div><=
/div></blockquote><div><br></div><div>+1 (as they say)</div><div>&nbsp;</di=
v><div>People always want this feature for COM programming on Windows where=
 you have huge numbers of parameters that are best defaulted.</div><div>I d=
on't tend to see the situation anywhere else.</div><div><br></div><div>but =
you still end up with excel.insertSheet(0, default,t default,default,defaul=
t) etc. or whatever, as you say.</div><div><br></div><div>Named parameters =
would seem to be far more favourable to that IMHO.</div><div><br></div><div=
>I'm always leery about using default parameters in any form though, I don'=
t ever seem to have a good experience with them.</div><div>I wonder if name=
d parameters&nbsp;might become more useful in web frameworks down the road =
but I don't know.</div><div><br></div><div>It's interesting to know API's p=
eople are actually wrestling with that warrant this support.&nbsp;One wonde=
rs how&nbsp;common they are and if their design is the fault or not etc.</d=
iv><div>I know the COM type API's for MS Office made me most think about th=
is topic.</div><div><br></div><blockquote class=3D"gmail_quote" style=3D"ma=
rgin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204=
, 204); border-left-width: 1px; border-left-style: solid;"><div dir=3D"ltr"=
><div><div class=3D"gmail_quote"><div>
<br></div><div>Tony<br></div></div></div></div>
</blockquote></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 />

------=_Part_11_425851070.1408232261280--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Sun, 17 Aug 2014 23:32:05 +0530
Raw View
--001a11349d2658d2f30500d70d61
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I started working on it a few days back. I will complete the first draft
soon and post it.

Hariharan S


On Sat, Aug 16, 2014 at 8:38 PM, Kenshi Takayama <kenshi84@gmail.com> wrote=
:

> I really like this proposal. Any progress?
>
> Kenshi
>
> 2013=E5=B9=B45=E6=9C=884=E6=97=A5=E5=9C=9F=E6=9B=9C=E6=97=A5 2=E6=99=8257=
=E5=88=8639=E7=A7=92 UTC+2 Greg Marr:
>
>> On Friday, May 3, 2013 2:15:42 AM UTC-4, Hariharan Subramanian wrote:
>>
>>> Thanks for the info Greg. Will you able to offer comments on the
>>> assertion "the combination of this proposal and named parameters may
>>> encourage interfaces with high number of parameters"?
>>>
>>
>> I don't see what effect middle default parameters would have on named
>> parameters encouraging interfaces with a high number of parameters. It
>> seems to me that they can do that quite well on their own.
>>
>>  --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/=
unsubscribe
> .
>
> To unsubscribe from this group and all its topics, 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/.

--001a11349d2658d2f30500d70d61
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I started working on it a few days back. I will complete t=
he first draft soon and post it.<div><br></div><div>Hariharan S</div></div>=
<div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Sat, Aug 1=
6, 2014 at 8:38 PM, Kenshi Takayama <span dir=3D"ltr">&lt;<a href=3D"mailto=
:kenshi84@gmail.com" target=3D"_blank">kenshi84@gmail.com</a>&gt;</span> wr=
ote:<br>
<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">I really like this proposal=
.. Any progress?<div><br></div><div>Kenshi<br><br>2013=E5=B9=B45=E6=9C=884=
=E6=97=A5=E5=9C=9F=E6=9B=9C=E6=97=A5 2=E6=99=8257=E5=88=8639=E7=A7=92 UTC+2=
 Greg Marr:<div class=3D"">
<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><span style=3D"font-size:13px">On F=
riday, May 3, 2013 2:15:42 AM UTC-4, Hariharan Subramanian wrote:</span><br=
><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">Thanks for the info Greg. Will you able to offer comments =
on the assertion &quot;<span style=3D"font-family:arial,sans-serif;font-siz=
e:13px">the combination of this proposal and named parameters may encourage=
 interfaces with high number of parameters&quot;?</span></div>
</blockquote><div><br></div><div>I don&#39;t see what effect middle default=
 parameters would have on named parameters encouraging interfaces with a hi=
gh number of parameters. It seems to me that they can do that quite well on=
 their own.</div>
<div><br></div></blockquote></div></div></div><div class=3D"">

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br></div>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe" target=3D"_blan=
k">https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s=
/unsubscribe</a>.<div class=3D"">
<br>
To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_blank">std-prop=
osals+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></div>
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>
</blockquote></div><br></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 />

--001a11349d2658d2f30500d70d61--

.


Author: Chet <chet.skolos@gmail.com>
Date: Mon, 18 Aug 2014 17:38:02 -0700 (PDT)
Raw View
------=_Part_2951_1051824414.1408408682379
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I have an idea for explicit defaults. An explicit default value will=20
require the use of the default keyword to provide the default value, that=
=20
is leaving the parmeter off the end of the list would be an error.

I'm not sure how well this would fit with named parameters or the current=
=20
ideas about default parameters. Perhaps named parameters would be a better=
=20
solution for the problems this would solve?

Here is an example of what I suggesting:

void foo(int a=3D1, int b=3D2); //ok
void bar(int a=3Dexplicit 1); //explicit default value=20
void mew(int a=3D1, int b); //explicit default value for a because b does n=
ot=20
have a default
void orc(int a, int b=3Dexplicit 2); // explicit default value for b
void orc(int a); //since b has an explicit default value we are ok with=20
this overload

int main()
{
foo(); //ok calls foo(1,2)
bar(); //error default is explicit
mew(); //error no default for b
orc(); //error neither overload has defaults for all parameters

foo(9); //ok calls foo(9,2)
bar(9); // calls bar(9)
mew(9); //error no default value for b
orc(9); // calls orc(9) the single parameter overload

foo(default); // calls foo(1,2)
bar(default); // calls bar(1)
mew(default); //error no default for b
orc(default); //error a does not have a default value in either overload

foo(default,5); // calls foo(1,5)
mew(default,5); // calls mew(1,5)
orc(default,5); // error a does not have a default value in either overload

foo(5,default); // calls foo(5,2)
mew(5,default); // error no default value for b
orc(5,default); // calls orc(5,2)

foo(default,default); // calls foo(1,2)
mew(default,default); // error no default value for b
orc(default,default); // error a does not have a default value=20

return 0;
}
//end code example

Cheers,

Chet.

On Sunday, 17 August 2014 11:02:07 UTC-7, Hariharan Subramanian wrote:
>
> I started working on it a few days back. I will complete the first draft=
=20
> soon and post it.
>
> Hariharan S
>
>
> On Sat, Aug 16, 2014 at 8:38 PM, Kenshi Takayama <kens...@gmail.com=20
> <javascript:>> wrote:
>
>> I really like this proposal. Any progress?
>>
>> Kenshi
>>
>> 2013=E5=B9=B45=E6=9C=884=E6=97=A5=E5=9C=9F=E6=9B=9C=E6=97=A5 2=E6=99=825=
7=E5=88=8639=E7=A7=92 UTC+2 Greg Marr:
>>
>>> On Friday, May 3, 2013 2:15:42 AM UTC-4, Hariharan Subramanian wrote:
>>>
>>>> Thanks for the info Greg. Will you able to offer comments on the=20
>>>> assertion "the combination of this proposal and named parameters may=
=20
>>>> encourage interfaces with high number of parameters"?
>>>>
>>>
>>> I don't see what effect middle default parameters would have on named=
=20
>>> parameters encouraging interfaces with a high number of parameters. It=
=20
>>> seems to me that they can do that quite well on their own.
>>>
>>>  --=20
>>
>> ---=20
>> You received this message because you are subscribed to a topic in the=
=20
>> Google Groups "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this topic, visit=20
>> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s=
/unsubscribe
>> .
>>
>> To unsubscribe from this group and all its topics, send an email to=20
>> std-proposal...@isocpp.org <javascript:>.
>> To post to this group, send email to std-pr...@isocpp.org <javascript:>.
>> Visit this group at=20
>> 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/.

------=_Part_2951_1051824414.1408408682379
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I have an idea for explicit defaults. An explicit default =
value will require the use of the default keyword to provide the default va=
lue, that is leaving the parmeter off the end of the list would be an error=
..<div><br></div><div>I'm not sure how well this would fit with named parame=
ters or the current ideas about default parameters. Perhaps named parameter=
s would be a better solution for the problems this would solve?<br><br>Here=
 is an example of what I suggesting:<br><br><div><div>void foo(int a=3D1, i=
nt b=3D2); //ok</div><div>void bar(int a=3Dexplicit 1); //explicit default =
value&nbsp;</div><div>void mew(int a=3D1, int b); //explicit default value =
for a because b does not have a default</div><div>void orc(int a, int b=3De=
xplicit 2); // explicit default value for b</div><div>void orc(int a); //si=
nce b has an explicit default value we are ok with this overload</div><div>=
<br></div><div>int main()</div><div>{</div><div>foo(); //ok calls foo(1,2)<=
/div><div>bar(); //error default is explicit</div><div>mew(); //error no de=
fault for b</div><div>orc(); //error neither overload has defaults for all =
parameters</div><div><br></div><div>foo(9); //ok calls foo(9,2)</div><div>b=
ar(9); // calls bar(9)</div><div>mew(9); //error no default value for b</di=
v><div>orc(9); // calls orc(9) the single parameter overload</div><div><br>=
</div><div>foo(default); // calls foo(1,2)</div><div>bar(default); // calls=
 bar(1)</div><div>mew(default); //error no default for b</div><div>orc(defa=
ult); //error a does not have a default value in either overload</div><div>=
<br></div><div>foo(default,5); // calls foo(1,5)</div><div>mew(default,5); =
// calls mew(1,5)</div><div>orc(default,5); // error a does not have a defa=
ult value in either overload</div><div><br></div><div>foo(5,default); // ca=
lls foo(5,2)</div><div>mew(5,default); // error no default value for b</div=
><div>orc(5,default); // calls orc(5,2)</div><div><br></div><div>foo(defaul=
t,default); // calls foo(1,2)</div><div>mew(default,default); // error no d=
efault value for b</div><div>orc(default,default); // error a does not have=
 a default value&nbsp;</div><div><br></div><div>return 0;</div><div>}</div>=
</div><div>//end code example<br></div><div><br></div><div>Cheers,</div><di=
v><br></div><div>Chet.</div><div><br></div><div>On Sunday, 17 August 2014 1=
1:02:07 UTC-7, Hariharan Subramanian  wrote:<blockquote class=3D"gmail_quot=
e" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;paddin=
g-left: 1ex;"><div dir=3D"ltr">I started working on it a few days back. I w=
ill complete the first draft soon and post it.<div><br></div><div>Hariharan=
 S</div></div><div><br><br><div class=3D"gmail_quote">On Sat, Aug 16, 2014 =
at 8:38 PM, Kenshi Takayama <span dir=3D"ltr">&lt;<a href=3D"javascript:" t=
arget=3D"_blank" gdf-obfuscated-mailto=3D"Zu8CnO1YpRsJ" onmousedown=3D"this=
..href=3D'javascript:';return true;" onclick=3D"this.href=3D'javascript:';re=
turn true;">kens...@gmail.com</a>&gt;</span> wrote:<br>
<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">I really like this proposal=
.. Any progress?<div><br></div><div>Kenshi<br><br>2013=E5=B9=B45=E6=9C=884=
=E6=97=A5=E5=9C=9F=E6=9B=9C=E6=97=A5 2=E6=99=8257=E5=88=8639=E7=A7=92 UTC+2=
 Greg Marr:<div>
<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><span style=3D"font-size:13px">On F=
riday, May 3, 2013 2:15:42 AM UTC-4, Hariharan Subramanian wrote:</span><br=
><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">Thanks for the info Greg. Will you able to offer comments =
on the assertion "<span style=3D"font-family:arial,sans-serif;font-size:13p=
x">the combination of this proposal and named parameters may encourage inte=
rfaces with high number of parameters"?</span></div>
</blockquote><div><br></div><div>I don't see what effect middle default par=
ameters would have on named parameters encouraging interfaces with a high n=
umber of parameters. It seems to me that they can do that quite well on the=
ir own.</div>
<div><br></div></blockquote></div></div></div><div>

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups "ISO C++ Standard - Future Proposals" group.<br></div>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe" target=3D"_blan=
k" onmousedown=3D"this.href=3D'https://groups.google.com/a/isocpp.org/d/top=
ic/std-proposals/4tWQEMqEH8s/unsubscribe';return true;" onclick=3D"this.hre=
f=3D'https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH=
8s/unsubscribe';return true;">https://groups.google.com/a/<wbr>isocpp.org/d=
/topic/std-<wbr>proposals/4tWQEMqEH8s/<wbr>unsubscribe</a>.<div>
<br>
To unsubscribe from this group and all its topics, send an email to <a href=
=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailto=3D"Zu8CnO1YpRsJ" o=
nmousedown=3D"this.href=3D'javascript:';return true;" onclick=3D"this.href=
=3D'javascript:';return true;">std-proposal...@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"javascript:" target=3D"_bla=
nk" gdf-obfuscated-mailto=3D"Zu8CnO1YpRsJ" onmousedown=3D"this.href=3D'java=
script:';return true;" onclick=3D"this.href=3D'javascript:';return true;">s=
td-pr...@isocpp.org</a>.<br></div>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/" target=3D"_blank" onmousedown=3D"this.href=3D'http://groups=
..google.com/a/isocpp.org/group/std-proposals/';return true;" onclick=3D"thi=
s.href=3D'http://groups.google.com/a/isocpp.org/group/std-proposals/';retur=
n true;">http://groups.google.com/a/<wbr>isocpp.org/group/std-<wbr>proposal=
s/</a>.<br>
</blockquote></div><br></div>
</blockquote></div></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 />

------=_Part_2951_1051824414.1408408682379--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Wed, 27 Aug 2014 01:00:42 +0530
Raw View
--047d7bb04446d7393e05018d5637
Content-Type: multipart/alternative; boundary=047d7bb04446d7393b05018d5635

--047d7bb04446d7393b05018d5635
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I am attaching the first draft of the proposal. It is based on the
standards document N3797.pdf dated 2013-10-13.

Hariharan S


On Sun, Aug 17, 2014 at 11:32 PM, Hariharan Subramanian <tohari@gmail.com>
wrote:

> I started working on it a few days back. I will complete the first draft
> soon and post it.
>
> Hariharan S
>
>
> On Sat, Aug 16, 2014 at 8:38 PM, Kenshi Takayama <kenshi84@gmail.com>
> wrote:
>
>> I really like this proposal. Any progress?
>>
>> Kenshi
>>
>> 2013=E5=B9=B45=E6=9C=884=E6=97=A5=E5=9C=9F=E6=9B=9C=E6=97=A5 2=E6=99=825=
7=E5=88=8639=E7=A7=92 UTC+2 Greg Marr:
>>
>>> On Friday, May 3, 2013 2:15:42 AM UTC-4, Hariharan Subramanian wrote:
>>>
>>>> Thanks for the info Greg. Will you able to offer comments on the
>>>> assertion "the combination of this proposal and named parameters may
>>>> encourage interfaces with high number of parameters"?
>>>>
>>>
>>> I don't see what effect middle default parameters would have on named
>>> parameters encouraging interfaces with a high number of parameters. It
>>> seems to me that they can do that quite well on their own.
>>>
>>>  --
>>
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "ISO C++ Standard - Future Proposals" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s=
/unsubscribe
>> .
>>
>> To unsubscribe from this group and all its topics, 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/.

--047d7bb04446d7393b05018d5635
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I am attaching the first draft of the proposal. It is base=
d on the standards document N3797.pdf dated 2013-10-13.<div><br></div><div>=
Hariharan S</div></div><div class=3D"gmail_extra"><br><br><div class=3D"gma=
il_quote">
On Sun, Aug 17, 2014 at 11:32 PM, Hariharan Subramanian <span dir=3D"ltr">&=
lt;<a href=3D"mailto:tohari@gmail.com" target=3D"_blank">tohari@gmail.com</=
a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0=
 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir=3D"ltr">I started working on it a few days back. I will complete t=
he first draft soon and post it.<div><br></div><div>Hariharan S</div></div>=
<div class=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_extra"><br><br>=
<div class=3D"gmail_quote">
On Sat, Aug 16, 2014 at 8:38 PM, Kenshi Takayama <span dir=3D"ltr">&lt;<a h=
ref=3D"mailto:kenshi84@gmail.com" target=3D"_blank">kenshi84@gmail.com</a>&=
gt;</span> wrote:<br>
<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">I really like this proposal=
.. Any progress?<div><br></div><div>Kenshi<br><br>2013=E5=B9=B45=E6=9C=884=
=E6=97=A5=E5=9C=9F=E6=9B=9C=E6=97=A5 2=E6=99=8257=E5=88=8639=E7=A7=92 UTC+2=
 Greg Marr:<div>

<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><span style=3D"font-size:13px">On F=
riday, May 3, 2013 2:15:42 AM UTC-4, Hariharan Subramanian wrote:</span><br=
>
<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">Thanks for the info Greg. Will you able to offer comments =
on the assertion &quot;<span style=3D"font-family:arial,sans-serif;font-siz=
e:13px">the combination of this proposal and named parameters may encourage=
 interfaces with high number of parameters&quot;?</span></div>

</blockquote><div><br></div><div>I don&#39;t see what effect middle default=
 parameters would have on named parameters encouraging interfaces with a hi=
gh number of parameters. It seems to me that they can do that quite well on=
 their own.</div>

<div><br></div></blockquote></div></div></div><div>

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br></div>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe" target=3D"_blan=
k">https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s=
/unsubscribe</a>.<div>

<br>
To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_blank">std-prop=
osals+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></div>
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>
</blockquote></div><br></div>
</div></div></blockquote></div><br></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 />

--047d7bb04446d7393b05018d5635--
--047d7bb04446d7393e05018d5637
Content-Type: application/pdf;
 name="Default Values in Middle Parameters.pdf"
Content-Disposition: attachment;
 filename="Default Values in Middle Parameters.pdf"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hzbmp4mw0

JVBERi0xLjQKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL01lZGlhQm94IFsw
IDAgNTk1LjMyIDg0MS45Ml0KL1Jlc291cmNlcyAyIDAgUgovR3JvdXAgPDwvVHlwZSAvR3JvdXAg
L1MgL1RyYW5zcGFyZW5jeSAvQ1MgL0RldmljZVJHQj4+Ci9Db250ZW50cyA0IDAgUj4+CmVuZG9i
ago0IDAgb2JqCjw8L0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA3MT4+CnN0cmVhbQp4nDNS
8OIy0DM1VyjnKlQwUPBSMFQoB9JZQOwOxOlAUUM9AyBQAEEYE4VKzuXSDwnwMVRwyVcI5ArkAitS
QCaL0rkANmYUpQplbmRzdHJlYW0KZW5kb2JqCjUgMCBvYmoKPDwvVHlwZSAvUGFnZQovUGFyZW50
IDEgMCBSCi9NZWRpYUJveCBbMCAwIDU5NS4zMiA4NDEuOTJdCi9SZXNvdXJjZXMgMiAwIFIKL0dy
b3VwIDw8L1R5cGUgL0dyb3VwIC9TIC9UcmFuc3BhcmVuY3kgL0NTIC9EZXZpY2VSR0I+PgovQ29u
dGVudHMgNiAwIFI+PgplbmRvYmoKNiAwIG9iago8PC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5n
dGggNzM+PgpzdHJlYW0KeJwzUvDiMtAzNVco5zLUMzAwUEAmi9K5ChUMFLwUDBXKgXQWELsDMUgU
rMBAAQRhTBQqOZdLPyTAx0jBJV8hkCsQu+EABkMYtgplbmRzdHJlYW0KZW5kb2JqCjcgMCBvYmoK
PDwvVHlwZSAvUGFnZQovUGFyZW50IDEgMCBSCi9NZWRpYUJveCBbMCAwIDU5NS4zMiA4NDEuOTJd
Ci9SZXNvdXJjZXMgMiAwIFIKL0dyb3VwIDw8L1R5cGUgL0dyb3VwIC9TIC9UcmFuc3BhcmVuY3kg
L0NTIC9EZXZpY2VSR0I+PgovQ29udGVudHMgOCAwIFI+PgplbmRvYmoKOCAwIG9iago8PC9GaWx0
ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggNzM+PgpzdHJlYW0KeJwzUvDiMtAzNVco5zLUMzAwUEAm
i9K5ChUMFLwUDBXKgXQWELsDMUgUrMBAAQRhTBQqOZdLPyTAx1jBJV8hkCsQu+EABmEYtwplbmRz
dHJlYW0KZW5kb2JqCjkgMCBvYmoKPDwvVHlwZSAvUGFnZQovUGFyZW50IDEgMCBSCi9NZWRpYUJv
eCBbMCAwIDU5NS4zMiA4NDEuOTJdCi9SZXNvdXJjZXMgMiAwIFIKL0dyb3VwIDw8L1R5cGUgL0dy
b3VwIC9TIC9UcmFuc3BhcmVuY3kgL0NTIC9EZXZpY2VSR0I+PgovQ29udGVudHMgMTAgMCBSPj4K
ZW5kb2JqCjEwIDAgb2JqCjw8L0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA3Mz4+CnN0cmVh
bQp4nDNS8OIy0DM1VyjnMtQzMDBQQCaL0rkKFQwUvBQMFcqBdBYQuwMxSBSswEABBGFMFCo5l0s/
JMDHRMElXyGQKxC74QAGfxi4CmVuZHN0cmVhbQplbmRvYmoKMTEgMCBvYmoKPDwvVHlwZSAvUGFn
ZQovUGFyZW50IDEgMCBSCi9NZWRpYUJveCBbMCAwIDU5NS4zMiA4NDEuOTJdCi9SZXNvdXJjZXMg
MiAwIFIKL0dyb3VwIDw8L1R5cGUgL0dyb3VwIC9TIC9UcmFuc3BhcmVuY3kgL0NTIC9EZXZpY2VS
R0I+PgovQ29udGVudHMgMTIgMCBSPj4KZW5kb2JqCjEyIDAgb2JqCjw8L0ZpbHRlciAvRmxhdGVE
ZWNvZGUgL0xlbmd0aCA3Mz4+CnN0cmVhbQp4nDNS8OIy0DM1VyjnMtQzMDBQQCaL0rkKFQwUvBQM
FcqBdBYQuwMxSBSswEABBGFMFCo5l0s/JMDHVMElXyGQKxC74QAGnRi5CmVuZHN0cmVhbQplbmRv
YmoKMTMgMCBvYmoKPDwvVHlwZSAvUGFnZQovUGFyZW50IDEgMCBSCi9NZWRpYUJveCBbMCAwIDU5
NS4zMiA4NDEuOTJdCi9SZXNvdXJjZXMgMiAwIFIKL0dyb3VwIDw8L1R5cGUgL0dyb3VwIC9TIC9U
cmFuc3BhcmVuY3kgL0NTIC9EZXZpY2VSR0I+PgovQ29udGVudHMgMTQgMCBSPj4KZW5kb2JqCjE0
IDAgb2JqCjw8L0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA3Mz4+CnN0cmVhbQp4nDNS8OIy
0DM1VyjnMtQzMDBQQCaL0rkKFQwUvBQMFcqBdBYQuwMxSBSswEABBGFMFCo5l0s/JMDHTMElXyGQ
KxC74QAGuxi6CmVuZHN0cmVhbQplbmRvYmoKMSAwIG9iago8PC9UeXBlIC9QYWdlcwovS2lkcyBb
MyAwIFIgNSAwIFIgNyAwIFIgOSAwIFIgMTEgMCBSIDEzIDAgUiBdCi9Db3VudCA2Ci9NZWRpYUJv
eCBbMCAwIDU5NS4yOCA4NDEuODldCj4+CmVuZG9iagoxNSAwIG9iago8PC9GaWx0ZXIgL0ZsYXRl
RGVjb2RlIC9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9Gb3JtVHlwZSAxCi9CQm94IFsw
LjAwIDAuMDAgNTk1LjMyIDg0MS45Ml0KL1Jlc291cmNlcyAKPDwvUHJvY1NldCBbL1BERiAvVGV4
dCBdCi9FeHRHU3RhdGUgMTYgMCBSCi9Gb250IDE3IDAgUgo+Pi9Hcm91cCA8PC9UeXBlL0dyb3Vw
L1MvVHJhbnNwYXJlbmN5Pj4KL0xlbmd0aCAyMzE3ID4+CnN0cmVhbQp4nMVZ224ktxEdIEAe5i1A
PoBvZgMaipcmm0QQIHAcx05seG0LhgFtHnpmeqTJai6eHu1mEeSrkg90FdkXsrtH0noTZLXY7Qub
LJ46dapY+olwJnPC8ae9WO3m1985clfPObmb/zTPmTDGFP5dfL3akU9vYKjgRGjmDLnZzIV/I4gw
iklNCsVZYcnNbn5LP6uyRc64UCanmzJTzBWaO/oIV1xontOHc7aQzFmjHSU41hUmV/QHP9ZZruhD
tigYl9qp5rNcKFrVZJstHNwJYeme4GgrtKBf++mKIhd0u84WmnEuYfy6+/IBLBIw2FLyqsQBsArc
nOAahnAhLd3hpSukgnXOfg4plaTVqYZPFbMCbkj2t5u/IA6SCNhg7nFQOculIAvhmJPkZj2HYTd/
ny8UzCy5IQvpmPYvbukX5Ql2IOh9eSr3GWIkTUH9RopC0u/hkVCFLeKVXAM4wGQsLBMcgLOdD95m
o7ml9/7SCa1peUI4ODe8oH61P3igrBH0bpfBxpS0ipbwisMXhdAebkEZ/IMwArarA8AhCpYXut01
DObKKnKzQrPyHoCFsAVzuYaNFszmHgHBEALeDDYRWpxZoE2HUjpVwWR4eUtv7oPLnCxagKzM6avT
IdPearp8CD51wLJqByOMcyZBDv4G+7xpDWh/POw9VDZXltYen3VgY27Q3RlO0d2fM91A68dXJANK
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
IC9GbGF0ZURlY29kZSAvVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovRm9ybVR5cGUgMQov
QkJveCBbMC4wMCAwLjAwIDU5NS4zMiA4NDEuOTJdCi9SZXNvdXJjZXMgCjw8L1Byb2NTZXQgWy9Q
REYgL1RleHQgXQovRXh0R1N0YXRlIDE5IDAgUgovRm9udCAyMCAwIFIKPj4vR3JvdXAgPDwvVHlw
ZS9Hcm91cC9TL1RyYW5zcGFyZW5jeT4+Ci9MZW5ndGggMzEzMiA+PgpzdHJlYW0KeJzNWkuTG7cR
dtXe+CvmlhmXCA2eg3EqB7mSg1NOJU72EJfkw4gcrjZZLtckd6XNyfnn6cZggAZmuKIellN2aTkv
AN34+usXfi5qJlRR43/jj9V28fzvbXF1WNTF1eLnhWLcGNO4Z/T3alt8ewmvclHA/5ebBXe3edEI
VgulikZbeL243C5elpfVkrPWKqHLN9VS4k9py76oVLmJ19fwVrk/HCtdFtVS4F0jylUly+4GH7l/
Cnh6jN/s/MjWwJOfLv+MK7J+RY1mnGsJq7pcL8rNbldd/ouuWHCm+fD0Jc6ohrnu4BcOyWWJS7mP
k+37YTZpVHkoqoYuhMpVWSqAE+s2XXZ/W0l67d7ZwYi38Z4fQir3YEMfmCdnNuWa3Hrob4bBdXlH
bu+LdAVklK5q6ZP3TTeuclZOeCO7lX2AemR1zVt8CTdQWM2M1uO+JBtsqAjdIfl2foENa1tbaw+O
pbSCCcuLJTeslW0zzEHVBXrW+Fs7NZDNd1rMsPkwAPM+3ukZrvIFwVC3Bx1k6iSbud/B9baINxJJ
cBVLLpkwWs0ocYBXe/LJkjupa8YlIH614Iaz2njdourBIGp80DB4wWt8kOmwg5EaN/p2e18Jr8fb
1HxR+8qcNMjTwOFM1NLwaHYUf7eD9rTU5VXFedkfvH54O9jkmZNQsK3TBxtU7X2cx+/uDEpxj1uQ
vtGGwqE/MESKFA0P6OLGMml1sRSGNWbQ5jz1jdAPYoxKB0snO3jl3nsA9aAK9Fl2nY6QoakvIjBR
BZTRUC3r2Y3cPkW6iU26JXWr3isEgFdbxJcQLTgY44HXReBZMMcReNS29912EMKKYcMoqQB3OSOV
ti3fVnqQDEUZ33gANbQ503jb5YLpVmRbIJQouz6KBU7IJFg6xhndh5lXevQCC9kwLczAL2Iilnu3
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
QNCMBBrLrKlHWz1kQY0C/z/D7h8ZFkzOEElwhQ3E4Ng28zkWLRZO6nlchhJEuUbvdHPMSnqQPShJ
hfkAfzRdnsXWWrK8UKHNm/yOsd7MGWs0pli8OU5b1vepmY41XizA52Zb2WAIoBGufdip/bmO/VUa
GhwPWe/4qWMV07MDH8LQgTOodxc29qPAi/zzq4uLX3CKmhsw9osfp05d8Og+Tnr1JQfhVeK9JsXY
/xuvbolXl6lXN7+iVx9Pp3y3KWKv+TatqOaknR00Ip0iTzrKRbuGmQZS8ZFufHesI9BzLTSKpuCV
Ibt08h4yX9qvqP/cZGs8TcLXpzxtV1TZWYVu6xyjqdvksEfvKuNWKYESmfle3DE2lK7TvkYy+alu
xaSvGA/TOTcrNJPWRkdwehtsQv1widmHBI/WiBP74Y6R9D5CwuNVc4shlu484mzs0R1G7vHrpdlT
R2KwyUmsuAsEJDeDmBbRZO3Ar8Bgafdp26f8SavNBYz9xyRnwU7OtHU1hxt30uTqvIkyXc126Wbi
s7QdlmnYB26zeg7HLFNPQuLdQ7qa5PwQiAGxnWgxJR29hRTgLLiJcZwu99117OFFGyfNt6tU7BmN
Of9CmsWhD90HoAzzkgrGdoDf9FjUp5RwJ/4bi2264HgwRaD7LtmnRgTcVRTJiL9GVASsyoQhs7yk
7ei9cyo5Ok8fS/63Oyj2FliJhlbraIEuRteNlc2H9YJhLGBxOZjsJOG6zywn7UybhCkoQednv/Ij
gcw1KmvbjqieBYvCsyWgPNWCaFhNFuyz1HNPnoK3lrUK/qaY+GFR/A+7zzYqCmVuZHN0cmVhbQpl
bmRvYmoKMjEgMCBvYmoKPDwvRmlsdGVyIC9GbGF0ZURlY29kZSAvVHlwZSAvWE9iamVjdAovU3Vi
dHlwZSAvRm9ybQovRm9ybVR5cGUgMQovQkJveCBbMC4wMCAwLjAwIDU5NS4zMiA4NDEuOTJdCi9S
ZXNvdXJjZXMgCjw8L1Byb2NTZXQgWy9QREYgL1RleHQgXQovRXh0R1N0YXRlIDIyIDAgUgovRm9u
dCAyMyAwIFIKPj4vR3JvdXAgPDwvVHlwZS9Hcm91cC9TL1RyYW5zcGFyZW5jeT4+Ci9MZW5ndGgg
Mjk2OCA+PgpzdHJlYW0KeJzVWltvI7cVLrBv/hV8y0wgcYfX4STYhxbIQ9q0RQq9FN48KNLIdmNJ
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
26Ng/DW1n+R3PfEaSWsc8zxXUgL/haJNapUvp/HgNFFHFZAZ07rtDkILg1l8V0PQ3Gxq6Lke6g07
bFN+RsK872IFyFn2jPfqubdnvH4mxs78GP9dTxXnDLGfm1sF9M5CH+fWjq8SOwfqxgjESrnsHY5F
jNZFUZFfdU8R0kbDHOMpxIj7zcM24UjbnrhTkAsg3r7M8MCfOyNqXymTYpsEbD2dSaFFVzGZbs5O
piCl/a1A0T6v6fnxgv0PMHgEnwplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqCjw8L0ZpbHRlciAv
RmxhdGVEZWNvZGUgL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0KL0Zvcm1UeXBlIDEKL0JC
b3ggWzAuMDAgMC4wMCA1OTUuMzIgODQxLjkyXQovUmVzb3VyY2VzIAo8PC9Qcm9jU2V0IFsvUERG
IC9UZXh0IF0KL0V4dEdTdGF0ZSAyNSAwIFIKL0ZvbnQgMjYgMCBSCj4+L0dyb3VwIDw8L1R5cGUv
R3JvdXAvUy9UcmFuc3BhcmVuY3k+PgovTGVuZ3RoIDMxODkgPj4Kc3RyZWFtCnic3VtLj9vIEQ7g
m34FbyEDq93vR24JkEOCJMAGcwnsPcgazdgLSzOWxrvrAAGSf56qJtmsbpIazViyd4NgYw3ZTVZX
1+P7qpofK86krjj+r/+x3i5e/SNUt4cFr24XHxeaCWuti/fo7/W2+uMVDBW+EoJxXV3dLES8Iyon
GZdaV85yZmx1tV28rv/dSCac5qaumu+v/gIzFcyUcZplSgVXXf11Ub/4sfktPlX29zgLEh56dQ3P
qJqlrjeNr3fNUrHgtfL19fCzamy9+Xm1vYdheEmo+kOzFHEGTJV4zcr6+5EATjOrjOpf8+I/L/6J
w7kS0tQv/tsNH2QyMLwdDM+9+mHBYSgsc42DdDdoaQ0ToVpKy7yPQy2LY7txthsXWsWnZ5FHeOZs
L9PfGl3fkbW+H9ZzM/z8DKPISkERAn96W6/gzn6YvuoHmqBCqIVsVWaUqVnjUNT0t2iWBlXhdP2q
EbwWFV6Ae0LUDzD2rmo041xoWx9WsMkheNjkz83SMQ7mkrY7qW9pQIoA6h5087r+w27YNLKCO3jB
20HsHzbdimBf1o2C95t8dFrvTX4HB0dbWB0O1TDqYXj053uwkk01SLFu4P9W02K9hafTse+bQG3y
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
b2JqCjI3IDAgb2JqCjw8L0ZpbHRlciAvRmxhdGVEZWNvZGUgL1R5cGUgL1hPYmplY3QKL1N1YnR5
cGUgL0Zvcm0KL0Zvcm1UeXBlIDEKL0JCb3ggWzAuMDAgMC4wMCA1OTUuMzIgODQxLjkyXQovUmVz
b3VyY2VzIAo8PC9Qcm9jU2V0IFsvUERGIC9UZXh0IF0KL0V4dEdTdGF0ZSAyOCAwIFIKL0ZvbnQg
MjkgMCBSCj4+L0dyb3VwIDw8L1R5cGUvR3JvdXAvUy9UcmFuc3BhcmVuY3k+PgovTGVuZ3RoIDIz
NzYgPj4Kc3RyZWFtCnic7VrLbhvJFQ2gHb+id+kemOV6P5YTIAsHyWICbQI7C1pqyZkRHyY5Hiur
zJ/nVHVXV1U3RT1GlGcAwbDQzeqqvs9z77nk54oSLivq/8WLi+Xs7T9ddb2b0ep69nkmCdNam7CW
X18sq7+czyihQlfnF9jDZMV4dX41Y2GdVYxaQnlllCUKC8tZzQRpzn/Ewd0GHTcogkPw6eWsrvwD
2WGcaNktva//0ch6fdnMBXFWClv/p5lzf6l5fZUub/FUlW43zZz5S6vrBVa2afsiPqiccA7CNXOJ
JSVUTRpTQ9a5IRQa1wy3uBO18H/e+tvsDXvcrqtuM3es3i0aLDlLFWTxdnWUC2z49/nfoJmwvWZz
BUGcEtWca2KdM52SZ/87+5c/mwrGVX3265/O+o3Y1ZvLEmmjTc7x8k9Jp7aXQxoJ/Vy9vf45LS5b
PLxK9/tG5XrcwFLeptBg3+h8pfuwSpb0O/O3YoUTLoTr1fzr+ewHxIZRwlEdwmF7fyzBNnQUQtyH
EKuMYESHEHpft183jSKUMs7rbbvbQTbqre3dtl5hyV/Leg47lBoluR4Q17m5oyzGEG4yWbpY7Y+k
RFsn4U1KBBNOq6dqbH1KFRr7OL1ovNEHg//cyPDxTYgUprSAwn2AXyc3+ceW7aoRfq8eHnxuywjj
iLGFzD4M6zXCbTvEPU3Z7nQMXy9x8CGDS4Xk9XVy4SC56mQOno8+Z97Z48RgiIR4ci9BsAWXASGi
9Y7EqNWaGGoqQZUhksMdlmiAmCBwaDu7+u6pNjLwE5eyMkwS2xspc2iRTLaeGs0ROuR8UH8Fy4WL
fQGILMZF797/ZgdvxwaTEur7mO3OJQ2fwpQiZvBWwCYzQNPE/moApi43DlWHuQyqBNCz4VFY5I9T
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
NiAwIG9iago8PC9SOSAzMyAwIFIKPj5lbmRvYmoKMTcgMCBvYmoKPDwvUjI1IDM0IDAgUgovUjIx
IDM1IDAgUgovUjEyIDM2IDAgUgovUjE0IDM3IDAgUgovUjI4IDM4IDAgUgovUjE2IDM5IDAgUgov
UjMwIDQwIDAgUgovUjE4IDQxIDAgUgovUjEwIDQyIDAgUgo+PmVuZG9iagoxOSAwIG9iago8PC9S
OSAzMyAwIFIKPj5lbmRvYmoKMjAgMCBvYmoKPDwvUjM4IDQzIDAgUgovUjEyIDM2IDAgUgovUjE0
IDM3IDAgUgovUjE2IDM5IDAgUgovUjMwIDQwIDAgUgovUjE4IDQxIDAgUgo+PmVuZG9iagoyMiAw
IG9iago8PC9SOSAzMyAwIFIKPj5lbmRvYmoKMjMgMCBvYmoKPDwvUjM4IDQzIDAgUgovUjEyIDM2
IDAgUgovUjQ2IDQ0IDAgUgovUjE0IDM3IDAgUgovUjE2IDM5IDAgUgovUjMwIDQwIDAgUgovUjE4
IDQxIDAgUgo+PmVuZG9iagoyNSAwIG9iago8PC9SOSAzMyAwIFIKPj5lbmRvYmoKMjYgMCBvYmoK
PDwvUjM4IDQzIDAgUgovUjEyIDM2IDAgUgovUjE0IDM3IDAgUgovUjE2IDM5IDAgUgovUjMwIDQw
IDAgUgovUjE4IDQxIDAgUgo+PmVuZG9iagoyOCAwIG9iago8PC9SOSAzMyAwIFIKPj5lbmRvYmoK
MjkgMCBvYmoKPDwvUjM4IDQzIDAgUgovUjEyIDM2IDAgUgovUjE0IDM3IDAgUgovUjE2IDM5IDAg
UgovUjMwIDQwIDAgUgovUjE4IDQxIDAgUgo+PmVuZG9iagozMSAwIG9iago8PC9SOSAzMyAwIFIK
Pj5lbmRvYmoKMzIgMCBvYmoKPDwvUjM4IDQzIDAgUgovUjEyIDM2IDAgUgovUjE0IDM3IDAgUgov
UjE2IDM5IDAgUgovUjMwIDQwIDAgUgo+PmVuZG9iagozMyAwIG9iago8PC9UeXBlIC9FeHRHU3Rh
dGUgL0JNIC9Ob3JtYWwgL09QTSAxIC9USyB0cnVlID4+ZW5kb2JqCjM0IDAgb2JqCjw8L0Jhc2VG
b250IC9NTkNTSlkrU3ltYm9sIC9Ub1VuaWNvZGUgNDUgMCBSCi9UeXBlIC9Gb250IC9FbmNvZGlu
ZyAvSWRlbnRpdHktSCAvRGVzY2VuZGFudEZvbnRzIFs0NiAwIFIKXQovU3VidHlwZSAvVHlwZTAg
Pj5lbmRvYmoKMzUgMCBvYmoKPDwvQmFzZUZvbnQgL0ROSUZWVytDb3VyaWVyTmV3IC9Ub1VuaWNv
ZGUgNDcgMCBSCi9UeXBlIC9Gb250IC9FbmNvZGluZyAvSWRlbnRpdHktSCAvRGVzY2VuZGFudEZv
bnRzIFs0OCAwIFIKXQovU3VidHlwZSAvVHlwZTAgPj5lbmRvYmoKMzYgMCBvYmoKPDwvQmFzZUZv
bnQgL0NBT0VVUitDYWxpYnJpIC9Gb250RGVzY3JpcHRvciA0OSAwIFIKL1RvVW5pY29kZSA1MCAw
IFIKL1R5cGUgL0ZvbnQgL0ZpcnN0Q2hhciAzMiAvTGFzdENoYXIgMTIyIC9XaWR0aHMgWzIyNiAw
IDAgMCAwIDAgMCAwIDMwMyAzMDMgMCAwIDI1MCAzMDYgMjUyIDAgMCA1MDcgNTA3IDUwNyA1MDcg
NTA3IDUwNyAwIDUwNyAwIDI2OCAyNjggMCA0OTggMCAwIDg5NCA1NzkgNTQ0IDUzMyA2MTUgNDg4
IDAgMCA2MjMgMjUyIDAgMCAwIDAgNjQ2IDY2MiA1MTcgMCAwIDQ1OSA0ODcgMCAwIDAgMCAwIDAg
MzA3IDAgMzA3IDAgMCAwIDQ3OSA1MjUgNDIzIDUyNSA0OTggMzA1IDQ3MSA1MjUgMjI5IDIzOSA0
NTUgMjI5IDc5OSA1MjUgNTI3IDUyNSA1MjUgMzQ5IDM5MSAzMzUgNTI1IDQ1MiA3MTUgNDMzIDQ1
MyAzOTUgXQovU3VidHlwZSAvVHJ1ZVR5cGUgPj5lbmRvYmoKMzcgMCBvYmoKPDwvQmFzZUZvbnQg
L0xQVEVORCtDYWxpYnJpLEJvbGQgL0ZvbnREZXNjcmlwdG9yIDUxIDAgUgovVG9Vbmljb2RlIDUy
IDAgUgovVHlwZSAvRm9udCAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAxMjEgL1dpZHRocyBbMjI2
IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMjY3IDQzMCA1MDcgNTA3IDUwNyA1MDcgNTA3IDUw
NyA1MDcgNTA3IDUwNyA1MDcgMCAwIDAgMCAwIDAgMCA2MDYgMCA1MjkgMCAwIDAgMCAwIDAgMCAw
IDAgODc0IDAgMCA1MzIgMCAwIDQ3MyA0OTUgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNDk0IDUz
NyA0MTggNTM3IDUwMyAzMTYgMCA1MzcgMjQ2IDAgMCAyNDYgODEzIDUzNyA1MzggNTM3IDAgMzU1
IDM5OSAzNDcgNTM3IDAgMCA0NTkgNDc0IF0KL1N1YnR5cGUgL1RydWVUeXBlID4+ZW5kb2JqCjM4
IDAgb2JqCjw8L0Jhc2VGb250IC9GQ1ZYTVcrQXJpYWwgL0ZvbnREZXNjcmlwdG9yIDUzIDAgUgov
VHlwZSAvRm9udCAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAzMiAvV2lkdGhzIFsyNzggXQovRW5j
b2RpbmcgL1dpbkFuc2lFbmNvZGluZyAvU3VidHlwZSAvVHlwZTEgPj5lbmRvYmoKMzkgMCBvYmoK
PDwvQmFzZUZvbnQgL05HSFVQSStBcmlhbCxCb2xkIC9Gb250RGVzY3JpcHRvciA1NCAwIFIKL1R5
cGUgL0ZvbnQgL0ZpcnN0Q2hhciAzMiAvTGFzdENoYXIgMzIgL1dpZHRocyBbMjc4IF0KL0VuY29k
aW5nIC9XaW5BbnNpRW5jb2RpbmcgL1N1YnR5cGUgL1R5cGUxID4+ZW5kb2JqCjQwIDAgb2JqCjw8
L0Jhc2VGb250IC9XVkRLSEUrQ2FsaWJyaSxJdGFsaWMgL0ZvbnREZXNjcmlwdG9yIDU1IDAgUgov
VG9Vbmljb2RlIDU2IDAgUgovVHlwZSAvRm9udCAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAxMjIg
L1dpZHRocyBbMjI2IDAgMCAwIDAgMCAwIDAgMzAzIDMwMyAwIDAgMjUwIDMwNiAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAyNjggMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2
NDUgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMzA3IDAgMzA3IDAgMCAwIDUxNCA1MTQgNDE2IDUx
NCA0NzggMzA1IDUxNCAwIDIyOSAwIDAgMjI5IDc5MSA1MTQgNTEzIDUxNCA1MTQgMzQzIDM4OSAz
MzUgNTE0IDAgMCA0MzMgNDQ3IDM5NSBdCi9TdWJ0eXBlIC9UcnVlVHlwZSA+PmVuZG9iago0MSAw
IG9iago8PC9CYXNlRm9udCAvRVBaTlJCK0NvdXJpZXJOZXcgL0ZvbnREZXNjcmlwdG9yIDU3IDAg
UgovVG9Vbmljb2RlIDU4IDAgUgovVHlwZSAvRm9udCAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAx
MjUgL1dpZHRocyBbNjAwIDAgMCAwIDAgMCAwIDAgNjAwIDYwMCAwIDAgNjAwIDAgNjAwIDYwMCA2
MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDAgMCAwIDYwMCAwIDYwMCAwIDAgMCA2MDAg
NjAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgMCAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDAgMCA2MDAgNjAwIDYw
MCA2MDAgNjAwIDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAwIDAgNjAwIDAgNjAwIDAgNjAwIF0KL1N1
YnR5cGUgL1RydWVUeXBlID4+ZW5kb2JqCjQyIDAgb2JqCjw8L0Jhc2VGb250IC9IQk5YTlIrQ2Ft
YnJpYSxCb2xkIC9Gb250RGVzY3JpcHRvciA1OSAwIFIKL1RvVW5pY29kZSA2MCAwIFIKL1R5cGUg
L0ZvbnQgL0ZpcnN0Q2hhciAzMiAvTGFzdENoYXIgMTE3IC9XaWR0aHMgWzIyMCAwIDAgMCAwIDAg
MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw
IDAgNzA1IDAgMCAwIDAgMCAwIDAgMCA4NDYgMCAwIDYxNCAwIDAgMCAwIDAgNjM0IDAgMCAwIDAg
MCAwIDAgMCAwIDAgNTM1IDAgMCA1OTcgNTMxIDMyNiAwIDAgMzE0IDAgMCAzMDggODkwIDYwNCAw
IDAgMCA0NjEgNDU5IDM2NSA1OTcgXQovU3VidHlwZSAvVHJ1ZVR5cGUgPj5lbmRvYmoKNDMgMCBv
YmoKPDwvQmFzZUZvbnQgL0FXWEJPSitDYWxpYnJpIC9Ub1VuaWNvZGUgNjEgMCBSCi9UeXBlIC9G
b250IC9FbmNvZGluZyAvSWRlbnRpdHktSCAvRGVzY2VuZGFudEZvbnRzIFs2MiAwIFIKXQovU3Vi
dHlwZSAvVHlwZTAgPj5lbmRvYmoKNDQgMCBvYmoKPDwvQmFzZUZvbnQgL1RYVFVLSCtDb3VyaWVy
TmV3LEl0YWxpYyAvRm9udERlc2NyaXB0b3IgNjMgMCBSCi9Ub1VuaWNvZGUgNjQgMCBSCi9UeXBl
IC9Gb250IC9GaXJzdENoYXIgMzIgL0xhc3RDaGFyIDExOSAvV2lkdGhzIFs2MDAgMCAwIDAgMCAw
IDAgMCA2MDAgNjAwIDAgMCA2MDAgMCA2MDAgNjAwIDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAg
NjAwIDAgMCA2MDAgNjAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDYwMCAwIDAgNjAw
IDYwMCAwIDAgMCAwIDYwMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA2MDAgNjAwIDYwMCA2MDAg
NjAwIDYwMCA2MDAgNjAwIDYwMCAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDAgNjAwIDYwMCA2
MDAgNjAwIDYwMCA2MDAgXQovU3VidHlwZSAvVHJ1ZVR5cGUgPj5lbmRvYmoKNDUgMCBvYmoKPDwv
RmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDE2MyA+PnN0cmVhbQp4nF2PMQ7DIAxFd07hG5B0
oUOUJV0ytKraXoCAiRhiECFDb18gJEMt2dK3/eRvPoy3kWwE/gxOvTGCsaQDrm4LCmHC2RJrL6Ct
ilWVqhbpGR/u0n++HiEtoNn1Qy7IX0KUTrszymlcvVQYJM3IuiZF35kUPUPSf+MKTebcFte+VtNM
ojDHNOPZy3Ea1BYCUiyGi6FsxBKeP3nnMwUp2Q9vuFVlCmVuZHN0cmVhbQplbmRvYmoKNDYgMCBv
YmoKPDwvQmFzZUZvbnQgL01OQ1NKWStTeW1ib2wgL0ZvbnREZXNjcmlwdG9yIDY1IDAgUgovVHlw
ZSAvRm9udCAvQ0lEVG9HSURNYXAgL0lkZW50aXR5IC9EVyA0NjAgL0NJRFN5c3RlbUluZm8gNjYg
MCBSCi9TdWJ0eXBlIC9DSURGb250VHlwZTIgPj5lbmRvYmoKNDcgMCBvYmoKPDwvRmlsdGVyIC9G
bGF0ZURlY29kZSAvTGVuZ3RoIDIyNyA+PnN0cmVhbQp4nF2QTW7DIBBG95yCG9jgn7hSNJtkk0Wr
qu0FYDxELIIRcRa9fWFoqFQkP4lnPuz5utPlfAl+l9172vCTdul8WBPdt0dCkpauPgil5epx/90x
8Wai6E6vJn59R5L5ALm6fzM36j4OCxtVM7itdI8GKZlwJXHs84KjywsEhfXfa9XXlHV/xwdo1D2w
mqFRD6yUgkZNVY3QOChWI0fGl8K5BkfLClktVTlonJHVxBdXzvX6aYHGw8TK8k/a/EXdK+T5noOU
UUtvz5okPlKisHO5XF4pzQdq/cctlpTMj/gBEYt5OQplbmRzdHJlYW0KZW5kb2JqCjQ4IDAgb2Jq
Cjw8L0Jhc2VGb250IC9ETklGVlcrQ291cmllck5ldyAvRm9udERlc2NyaXB0b3IgNjcgMCBSCi9U
eXBlIC9Gb250IC9DSURUb0dJRE1hcCAvSWRlbnRpdHkgL0RXIDYwMCAvQ0lEU3lzdGVtSW5mbyA2
OCAwIFIKL1N1YnR5cGUgL0NJREZvbnRUeXBlMiA+PmVuZG9iago0OSAwIG9iago8PC9UeXBlIC9G
b250RGVzY3JpcHRvciAvRm9udE5hbWUgL0NBT0VVUitDYWxpYnJpIC9Gb250QkJveCBbLTIwIC0x
NzggODA4IDY5MiBdCi9GbGFncyA0IC9Bc2NlbnQgNjkyIC9DYXBIZWlnaHQgNjkyIC9EZXNjZW50
IC0xNzggL0l0YWxpY0FuZ2xlIDAgL1N0ZW1WIDEyMSAvTWlzc2luZ1dpZHRoIDUwNiAvRm9udEZp
bGUyIDY5IDAgUgo+PmVuZG9iago1MCAwIG9iago8PC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5n
dGggMjUzID4+c3RyZWFtCnicXZE9bsMwDIV3nUI3sB1L+QEML8mSoUHR9gKyRAUaIguKM/T2eaST
Dh1I8JP4SJFqjufTOadFN5919t+06JhyqHSfH9WTnuiasuo2OiS/vEi8v7mimuOHKz+/hTQSKK58
cTdqvnYHOelWjZ8D3YvzVF2+khradhxiHBXl8O+qM6tiiq/UDVLZ2hYeuAceBPeMHkiCHth349Bv
GREBkcwG5OTeASdBxxhGMWAAGjQxltFwIwOdkUaGtQZNrDwDkRpsDzSMiICoaqUyPBBVrVS2XHmL
V+0cIyKe+T0cj897fK9N+0etlBdZtiyTl5gy/f1HmQurNEw9AUUpflAKZW5kc3RyZWFtCmVuZG9i
ago1MSAwIG9iago8PC9UeXBlIC9Gb250RGVzY3JpcHRvciAvRm9udE5hbWUgL0xQVEVORCtDYWxp
YnJpLEJvbGQgL0ZvbnRCQm94IFswIC0xNzcgODA1IDcyNiBdCi9GbGFncyA0IC9Bc2NlbnQgNzI2
IC9DYXBIZWlnaHQgNzI2IC9EZXNjZW50IC0xNzcgL0l0YWxpY0FuZ2xlIDAgL1N0ZW1WIDEyMCAv
TWlzc2luZ1dpZHRoIDUwNiAvRm9udEZpbGUyIDcwIDAgUgo+PmVuZG9iago1MiAwIG9iago8PC9G
aWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjQwID4+c3RyZWFtCnicXZAxcsMgEEV7TsENhCSD
nBkNjdO4SCaT5AIYVh4KIwbLRW6fv2s7RYrd2Sf9/cDvDsfXY8mb7j7aGr9o00suqdF1vbVI+kTn
XFQ/6JTj9iDp8RKq6g5voX7/VNIQ0HLn93Ch7nPfy5f+vhPXRNcaIrVQzqRmY/y8LF5RSf9+4SjZ
OC0P6QAplzHoQPLz+CJIwF3vpYxBB45eCjgyJi8FTEALGytWlq0shHYnyGIHG+cYHVu5PVAOwgSM
fp5kF5OapwFoGTEBIZ5EjIlf9bw+P5CTegaj4601KpvEKXFxTLnQX+J1rbylUeoXVgZ2PwplbmRz
dHJlYW0KZW5kb2JqCjUzIDAgb2JqCjw8L1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAv
RkNWWE1XK0FyaWFsIC9Gb250QkJveCBbMCAwIDEwMDAgMTAwMCBdCi9GbGFncyA2NTU2OSAvQXNj
ZW50IDAgL0NhcEhlaWdodCAwIC9EZXNjZW50IDAgL0l0YWxpY0FuZ2xlIDAgL1N0ZW1WIDAgL0F2
Z1dpZHRoIDI3OCAvTWF4V2lkdGggMjc4IC9NaXNzaW5nV2lkdGggMjc4IC9DaGFyU2V0ICgvc3Bh
Y2UpL0ZvbnRGaWxlMyA3MSAwIFIKPj5lbmRvYmoKNTQgMCBvYmoKPDwvVHlwZSAvRm9udERlc2Ny
aXB0b3IgL0ZvbnROYW1lIC9OR0hVUEkrQXJpYWwsQm9sZCAvRm9udEJCb3ggWzAgMCAxMDAwIDEw
MDAgXQovRmxhZ3MgNjU1NjkgL0FzY2VudCAwIC9DYXBIZWlnaHQgMCAvRGVzY2VudCAwIC9JdGFs
aWNBbmdsZSAwIC9TdGVtViAwIC9BdmdXaWR0aCAyNzggL01heFdpZHRoIDI3OCAvTWlzc2luZ1dp
ZHRoIDI3OCAvQ2hhclNldCAoL3NwYWNlKS9Gb250RmlsZTMgNzIgMCBSCj4+ZW5kb2JqCjU1IDAg
b2JqCjw8L1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAvV1ZES0hFK0NhbGlicmksSXRh
bGljIC9Gb250QkJveCBbLTk0IC0xNzggNzM3IDY5MiBdCi9GbGFncyA0IC9Bc2NlbnQgNjkyIC9D
YXBIZWlnaHQgNjMzIC9EZXNjZW50IC0xNzggL0l0YWxpY0FuZ2xlIDAgL1N0ZW1WIDExMCAvTWlz
c2luZ1dpZHRoIDUwNiAvWEhlaWdodCA0NzMgL0ZvbnRGaWxlMiA3MyAwIFIKPj5lbmRvYmoKNTYg
MCBvYmoKPDwvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDIzMyA+PnN0cmVhbQp4nF2QzW7D
IBCE7zwFb+B1Wv9UQlzSSw6NqrYvgGEdcQhGxDn07TOsnR562BGfvaOBaY6n91OKq24+y+K/edVz
TKHwbbkXz3riS0yqPegQ/bqTqL+6rJrjh8s/v5k1Fnje+Oyu3HyN25d28/gl8C07z8WlCytDZM08
W8Up/PvV7o5p3lcPWK1DBAWOwDfBsaIHBkEPfHFWhgiqzCtbGSKoMt1kZYigQPg68UKV6Vtr+qEi
TkCE9BIEBSJo6ARr0IBrDBKEU33G8771RbWaZxPa30vhtEp/0k/tJSb+qzgvubo0Rj0AbMh1QQpl
bmRzdHJlYW0KZW5kb2JqCjU3IDAgb2JqCjw8L1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFt
ZSAvRVBaTlJCK0NvdXJpZXJOZXcgL0ZvbnRCQm94IFswIC0xODggNTkzIDY3OCBdCi9GbGFncyA0
IC9Bc2NlbnQgNjc4IC9DYXBIZWlnaHQgNTcxIC9EZXNjZW50IC0xODggL0l0YWxpY0FuZ2xlIDAg
L1N0ZW1WIDg4IC9NaXNzaW5nV2lkdGggNjAwIC9YSGVpZ2h0IDQzNyAvRm9udEZpbGUyIDc0IDAg
Ugo+PmVuZG9iago1OCAwIG9iago8PC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjQ1ID4+
c3RyZWFtCnicXZExbsMwDEV3nUI3sGwHlgsIWtIlQ4Oi7QVkiQ48RBYUZ8jt+0knHTqQ0JM++UGq
OZ7eT3nZdPNZ1/hNm56XnCrd1nuNpCe6LFm1nU5L3J4kOV5DUc3xI5SfRyENAc07n8OVmq+xl5t2
r4lrolsJkWrIF1LOGO/m2SvK6d9T2+8V0/yUdpByGIMMHIFvgiNj9BLAyEje9VaQgP3kJYxBBiYv
AUzAQ+vdoWPESbkBOEjnQRBdrfgO3NlCaAdGnIAQWhEjA2FixciykYWJFSNkHvI1Dc/Li3vtScd7
rZQ32a5sj7e2ZPr7gLIWrtII9Qv8mnuNCmVuZHN0cmVhbQplbmRvYmoKNTkgMCBvYmoKPDwvVHlw
ZSAvRm9udERlc2NyaXB0b3IgL0ZvbnROYW1lIC9IQk5YTlIrQ2FtYnJpYSxCb2xkIC9Gb250QkJv
eCBbMCAtNyA4NTkgNzAxIF0KL0ZsYWdzIDEzMTA3NiAvQXNjZW50IDcwMSAvQ2FwSGVpZ2h0IDY2
NiAvRGVzY2VudCAtNyAvSXRhbGljQW5nbGUgMCAvU3RlbVYgMTI4IC9NaXNzaW5nV2lkdGggNjU4
IC9YSGVpZ2h0IDQ5MiAvRm9udEZpbGUyIDc1IDAgUgo+PmVuZG9iago2MCAwIG9iago8PC9GaWx0
ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjI2ID4+c3RyZWFtCnicXZDBjgIhDIbvPAVvMMxkwDWZ
cHEvHtZsdF8ASzEcZAiOB99+24568PA3fPQvoX+323/vS15099tmOOGiUy6x4W2+N0B9xksuqh90
zLA8SSpcQ1Xd7ifUv0dFTQZMKx/CFbvj1yg3/ToDc8RbDYAtlAuqyRg/peQVlvjR6s06cU5P60BW
ljFU1TSOXmQMVcLoRYSR0JLRitmy2TovInSErvciY6gS0jNOuo6fclsvItwyAiEKAuFm8NPGMtKJ
//36IK/AWbxW13BvDcsigUkgHEQu+M60zpWnNEn9AxF0b/UKZW5kc3RyZWFtCmVuZG9iago2MSAw
IG9iago8PC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjk2ID4+c3RyZWFtCnicXZLBboMw
DEDvfEX+ACeUBKTKl/bSw6Zp2w9AMBWHBkTpYX+/xCZMWqQ8KQ87sbDLy+16C9Omyo919l+0qXEK
w0rP+bV6Uj3dp1Boo4bJb/uJ6R/dUpSXt275/llIxQAa5fzePaj8dJaNlhw/D/RcOk9rF+5UnCEu
PI9xYUFh+PfZ7Fn9+Bde4UEDmJTWePBkktIwYiZYUZowE2zNyjSYCdayqjvMBNuIGjATbMvK8vVW
rvesHEc5iRpZNS1mggNRHjPBSV0tYCa4ShQXwQR3YtXXmAmOq6/qdBCC8aIazARDolrcacBYUT3u
NPEVVs7izqj4xapJFQkhxrLSmAnxf6SG5c6k3qVByH1X/rWuFDaeFp6GNAVToGOglnlJWSru4hc8
TabQCmVuZHN0cmVhbQplbmRvYmoKNjIgMCBvYmoKPDwvQmFzZUZvbnQgL0FXWEJPSitDYWxpYnJp
IC9Gb250RGVzY3JpcHRvciA3NiAwIFIKL1R5cGUgL0ZvbnQgL0NJRFRvR0lETWFwIC9JZGVudGl0
eSAvRFcgNTI1IC9XIFszIFsyMjYgXQoxNyBbNTQ0IF0KMjg2IFs0OTggXQoyOTYgWzMwNSBdCjM0
OSBbMjI5IF0KMzY3IFsyMjkgXQozNzMgWzc5OSA1MjUgXQozODEgWzUyNyBdCjM5NiBbMzQ5IF0K
NDAwIFszOTEgXQo0MTAgWzMzNSBdCjQ0OCBbNDUyIDcxNSBdCjg1MyBbMjUwIF0KODU2IFsyNTIg
NjkwIF0KODU5IFsyNTAgXQo4ODYgWzkwNSBdCjg5NiBbMzA3IDMwNyBdCl0KL0NJRFN5c3RlbUlu
Zm8gNzcgMCBSCi9TdWJ0eXBlIC9DSURGb250VHlwZTIgPj5lbmRvYmoKNjMgMCBvYmoKPDwvVHlw
ZSAvRm9udERlc2NyaXB0b3IgL0ZvbnROYW1lIC9UWFRVS0grQ291cmllck5ldyxJdGFsaWMgL0Zv
bnRCQm94IFstMTMgLTE4OCA2OTEgNjc4IF0KL0ZsYWdzIDY4IC9Bc2NlbnQgNjc4IC9DYXBIZWln
aHQgNTg0IC9EZXNjZW50IC0xODggL0l0YWxpY0FuZ2xlIC0xMiAvU3RlbVYgMTAzIC9NaXNzaW5n
V2lkdGggNjAwIC9YSGVpZ2h0IDQzNyAvRm9udEZpbGUyIDc4IDAgUgo+PmVuZG9iago2NCAwIG9i
ago8PC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjM4ID4+c3RyZWFtCnicXZAxbsMwDEV3
nUI3sOyosgsYXpIlQ4Oi7QVkmQo0RBYUZ8jt+8kkHTqQ4JP4Sek3++PhmNOmm8+6hm/adEx5qXRd
bzWQnumcsmo7vaSwPUlyuPiimv2HLz/3QhoNFB988hdqvgYjJ+1DE9aFrsUHqj6fSY3GTGOMk6K8
/LvCKlHM8dnaoZXDGGTgAHwXHBjDJAEMjASMggTctdO46xlRAT1wFvRAi9IKIgOhtaK1rH2zk4Qx
yGp0GOVkr+NRDrpeXuVY23dAWYSKf/V6Pn+QnXoZo8OtVsqb2Cl2sU0p05/jZS2s0gj1C3GSd/YK
ZW5kc3RyZWFtCmVuZG9iago2NSAwIG9iago8PC9UeXBlIC9Gb250RGVzY3JpcHRvciAvRm9udE5h
bWUgL01OQ1NKWStTeW1ib2wgL0ZvbnRCQm94IFswIC0yMTkgMTExMiAxMDA1IF0KL0ZsYWdzIDY1
NTY4IC9Bc2NlbnQgMTAwNSAvQ2FwSGVpZ2h0IDEwMDUgL0Rlc2NlbnQgLTIxOSAvSXRhbGljQW5n
bGUgMCAvU3RlbVYgMTY2IC9DSURTZXQgNzkgMCBSCi9Gb250RmlsZTIgODAgMCBSCj4+ZW5kb2Jq
CjY2IDAgb2JqCjw8L1JlZ2lzdHJ5IChBZG9iZSkvT3JkZXJpbmcgKElkZW50aXR5KS9TdXBwbGVt
ZW50IDAgPj5lbmRvYmoKNjcgMCBvYmoKPDwvVHlwZSAvRm9udERlc2NyaXB0b3IgL0ZvbnROYW1l
IC9ETklGVlcrQ291cmllck5ldyAvRm9udEJCb3ggWy0xMjEgLTY3OSA2MjIgMTAyMCBdCi9GbGFn
cyA2NTU2OCAvQXNjZW50IDEwMjAgL0NhcEhlaWdodCAxMDIwIC9EZXNjZW50IC02NzkgL0l0YWxp
Y0FuZ2xlIDAgL1N0ZW1WIDkzIC9DSURTZXQgODEgMCBSCi9Gb250RmlsZTIgODIgMCBSCj4+ZW5k
b2JqCjY4IDAgb2JqCjw8L1JlZ2lzdHJ5IChBZG9iZSkvT3JkZXJpbmcgKElkZW50aXR5KS9TdXBw
bGVtZW50IDAgPj5lbmRvYmoKNjkgMCBvYmoKPDwvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3Ro
MSA2MzM0OCAvTGVuZ3RoIDI3MjM1ID4+c3RyZWFtCnic7L0JfBTF1jZ+qqtnejLdU5nsISHJhCEJ
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
ekmSIUlPSXpI0l2SdEm6SdJVkmsk6SJJZ0k6SdJRkjRJOkiSKkl7SVIkaSdJsiRtJWkjSZIkiZK0
liRBknhJWknSUpIWksRJEitJjCTNJfFK0kySaEk8kkRJEilJhCRNJQmXJEySJpKEShIiSbAkQZIE
ShIgib8kfpK4JfGVhEniksSQRJfEKYmPJA5JNEnsktgkUSWhkiiSEEnAIqROkkuSXJTkD0kuSHJe
kt8l+U2SXyU5J8kvkpyV5GdJfpLkjCSnJflRkh8kOSXJSUm+l+Q7Sb6V5IQk30jytSRfSXJcki8l
+UKSzyU5JslnkhyV5FNJPpHkiCSHJTkkyceSHJTkI0k+lOSAJB9I8r4k70nyriTvSPK2JG9J8qYk
b0jyuiSvSbJfklcleUWSlyXZJ8lLkrwoyQuS7JXkeUn2SPKcJM9K8owkuyV5WpJdkuyU5ClJdkiy
XZJtktRKslWSGkmelOQJSR6XZIskmyV5TJJHJXlEkocl2STJRkk2SPKQJA9K8oAk6yW5X5J1kqyV
ZI0k90myWpJ7JVklyT2SrJTkbklWSLJckrskuVOSOyS5XZLbJFkmya2S3CLJUklulmSJJIsluUmS
GyWRxx4ijz1EHnuIPPYQeewh8thD5LGHyGMPkcceIo89RB57iDz2EHnsIfLYQ+Sxh8hjD5HHHiKP
PaRCEnn+IfL8Q+T5h8jzD5HnHyLPP0Sef4g8/xB5/iHy/EPk+YfI8w+R5x8izz9Enn+IPP8Qef4h
8vxD5PmHyPMPkecfIs8/RJ5/iDz/EHn+IfL8Q+T5h8jzD5HnHyLPP0Sef4g8/xB57CHy2EPksYfI
0w6Rpx0iTztEnnaIPO0Qedoh8rRD5GmHyNMO6bnNJHhqro3sGoVn5trIIITrRei62shOCAtFaIGA
+bWRBsI8EZor4FoBcwTMro3ojjCrNqInwkwBMwRUi7QqEaoUUCEip9dG9EAoF1AmoFRkKRFQLGBa
bdNeCFMFFAkoFDBFQEFt0wyEfBHKE5ArYLKAHAGTBEwUMEGUGy9C4wSMFTBGQLaALAGjBYwSkClg
pIARAoYLGCZgqIAhAgYLGCRgoIABAvrXhvdD6Cegb214f4Q+AnrXhg9A6FUbPhAhQ0BPAT1EWndR
Ll1AN1Guq4BrBHQROTsL6CSKdxSQJqCDgFQB7UVlKQLaiVqSBbQV0EZUliQgUZRrLSBBQLyAVgJa
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
3rsszInzGtJDAiYnkhdpebt8R0O3Fa8QdmyxsGelf8iplHNpL5lKK1BnUcmVjDcLzWsWLSuETTC5
qezux6xZI3bNP1qh/9S+OL4n0sRszD0gvUGqWKt6WHq3OzM9I9s9sbq8oa6xbmGTe3RdQ31dQ2lT
dd3iVPfImhr3tOpFVU2N7mmVjZUNSyorUkeX1lSXNVS7qxvdpe7auorKhsXuxtLFjW4sr17oXlha
W12zzN1S3VTlbmwua6qpdDfUNS+uqF68qNFdh1WbKmux5eIKd3ldw+LKhsZUd2GTe2FlaVNzQ2Wj
u6GytMZd3YRjlDf2czfWluIMykvrMW42qW2uaaquxy4XN9dWNmDNxsom0UGju76hDudtTht7r6mp
a3FX4cTd1bX1peVN7urF7iaTD5wZNnHXVC/GseoWusuqF4mO5UBNlUubsHH1aZWpbovNvo3u2tLF
y9zlzci8nHdTFY5f2eJuKEVeGqqRbWxYWuturjeHwR4XYU5j9XKs3lSHDC0xWSp1t5Q21MqxTDGX
V5U24MQqG1K7RT+4a0z3qLqailNQNMiMe0DqwCwrv7+Z30v8TQ2lFZW1pQ2nmbyY8zq+jotQ6vVm
dnkdimBxdWVj6oTm8sTSxiR3RaV7bENdXVNVU1P94LS0lpaW1NqudqlYPa1pWX3doobS+qplaeVN
C+sWNzVaVc34wlIc/jSzXkldMwpnmbu5sRIHxwmZxe5SXIvKhtrqpqbKCnfZMjGtMUUTRmJpg0jg
SlU0yzVpqaour+rRFrF6cXlNcwU2RdlVVDfW1+AAptTqG6qxQjnWqlzclOruGrtuMS5pYnWSu7K2
zGx0vKvFXZVPOiNR3VRKXKDGpobqcqk53aObCtPV1xAxgcRqHAWV19wdDaaKV9S1LK6pK+05KM65
VM4UVQDZRRmbkeam+uYmFPuS6vJKs05VZU39CQz9lbUQK5FWUbmwFLdBamlj/VLrngo6Q8z/u+P3
P5udrJ3+2hYVGd1Of2mLSkH4uS2qH8JPEn6UcFiW/SBThyR8L+GghO8kfCtrHpCwX2Z+I+FrCfsk
fCXhSwlfSPhcwt62KCfCZzL1qYRP2iL9Efa0RYYifNwWmYbwkYQPJXwgYbes8r5M7ZLwnoR3Jbwj
4W0JOyW8JeFNCW9IeF3CaxJelZN4RcLLEl6S8KIc9gVZ83kJz0nYIeFZCdslPCPhaQlPSXhSwhOy
z20SHpeZj0l4VMIjEh6W0C7hIQkPSnhAwlYJWyS0SdjcFpGJ0Crh/raILIT7JPxdwr0SNkm4py0i
A+FuCXfJdndKuEPC7RI2SrhNwq2y+S0SbpawQcJNEm6UcIPs+noJ62Xz6yRcK+EaCVdLuEq2u1LC
FRIul/A3CZdJuFTCJbLrdbL5WgkXS1gj4SIJq2WDCyVcIOF8CedJOFfCOW3h2QhnS1glYaWEsySs
kHCmhDMkLJewTMJSCS0SlkholtAkoVFCg4TTJdRLqGsLG4CwWEKthBoJp0k4VUK1hCoJiyQslFAp
oUJCuYQyCaUSFkiYL2GehLkS5kiYLWGWhJK20IEIxRJmSjhFQpGEGRKmS5gmYaqEKRImS5gkYaKE
CRLGSxgnoVBCgYSxEvIljJGQJ2G0hFESRkrwShghYbiEYRKGShgiYbCE3LaQXIRBEgZKyJEwQEK2
hCwJmRIyJKQLYKQtJBVTaTIzVUJ/Cf0kpEhIlpAkIVFCXwkJEuLbgocgxEnwtAWbCh3bFjwYIUZm
uiVES4iSECkhQkK4hDAJoRJCJARLCJIQKEcIkCP0kZn+Evwk+ErwkcAluCQYEnQJmgSn7NMhQZWZ
dgk2CYoEJoFKIBJAAOmU0CHhmITfJByVcETCrxJ+kfCzGJb8JDgiP8rMwxJ+kHBIwvcSDkr4TsK3
Eg5I2C/hGwlfS9gn4SsJX8rxvmgL8iB8LmFvWxAqGPlMwqdtQYMQPpGwpy1oNMLHbUF5CB9J+FDC
B21BYxB2twXlI7wvYZeE92TX70p4R3b2tuxsp4S3JLwpO3tDtntdwmsSXpXwioSXJbwk270ou35B
wvNy8s9J2CHHe7YtaBTCdtngGTnQ03LWT8nOnpTwhIRtEh6X8JiERyU8Irt+WHbdLrt+SHb9oIQH
JGyVA22R0CZhsxy2VcL9Eu6TXf9dwr0SNkm4R8LdbYFod8ldbYEjEe6UcEdb4ESE29sCJyFsbAuc
jHBbW+A0hFvbAr0It8gqN8sqG2SVm2SVG2XZDbLm9TK1Xta8TsK1ssE1Eq5uC5yCcJVsfqWEKyRc
Lqf0N1nzMlnzUgmXtAVORVgna66VcLGENW0BxQgXtQWUIKxuC5iDcGFbwFyEC9oCxiGc3xYwG+E8
WXaurHmOrHK2937Egz5jor/jBdF7jEnRT2N4CsOTGJ7QT4luw7AZQyuG+zHch+HvGO7FsAnDPRju
xnAXhjsx3IHhdgwbMdyG4VYMt2C4GcMGDDdpVdHrMVyH4VoM12C4GsNVGK7EcAWGyzH8DcNlzqro
SzFcgmEdhrUYRjrpb/QInALR9ChiFUSTlW19zO14Vpu/qVpNEhrb/EzVapBwuoR6CXUSFkuolVAj
4TQJp0oYKmFIm68JgyXkShgkYaCEHAkDJGRLyJKQ2eZj6mmGhHQJ/hL8JPhK8JHAJbjacFHaiSFB
l6BJcEpwSFDbXOZS272zEb/FcADDfgzfYPgawz5czo8xfIThQwwfYNiN4X0Mu3BZ3sPwLoZtGB7H
8BiGRzE8guFGXIobMLSTVVLSy9v8TJVfJoWzVEKLhCUSmiWMljBKymGkBK+EERKGSxgmWQ6UECCh
jwkPM8Zomzd64zZGYSuG7cz8m4sg53KGhOly1afJmU2VMEXCZAmTJEyUMEHCeAnjJBRKKJAwVkK+
hDES8iTESoiRk3dLiJYQJSFSQoSEcAlhEkIlhEg2gyUEea9HPIbhNwxHMRzB8Csu8C8YfsbwE4Yf
MRzG8AOu6iEM32P4EsMXGD7HsBfDZxg+xfAJru4rGF7G8BKGFzG8gOF5DM9h2IHhWQzbMTyDoR3D
Q7jiD2J4AMNWDFswXG+uPj0mZbxCwpkSqtv88ChEqiQskmJZKKFSQoWEcgllEkolLJAwX8I8CXMl
zJEwW8IsCSUSiiXMlHCKhCIJMySkSUiVou4voZ+EFAnJEpIkJEroKyFBQrxcmzgJHgk2CYoEJoFK
IHJHgvdWxE4MHRi+QsG+g+FtDDsxvIXhTQxvYHgdw2sYXkVBP4zhfBYffR5LjT6XpEafU7Cq6OxN
q4pWFqwoOmvTiiJ9xZAV41cwfUU4whkrNq3YvcJ+ZsHyojM2LS9Slgcsp9qygpaipZtaivQWYiwp
aC6a0by3+XAzC2ie0VzR3NR8ZfNOzFA3Nm9t3t7M2juf9Po3DxqSv6r5smYagOUUmomPmR3TrPP8
poKGosZNDUVKQ3YDHXK4gexpIDS9gUxpWNBAsdaWhrjEfLP2gIagsHzfhvQGbwM7vaCuqH5TXdHk
urq6lXUb6p6os62su7SO3o8x6q1zuvIXF9QWfVxL4DHaCb4YnqSdbUyre5Sab12/ox3eTnIaCuBU
FER16qKiqk2LihamVhRVbqooKk8tKypNXVA0P3Vu0bxNc4vmpM4qmr1pVlFJanHRTKx/SuqMoqJN
M4qmp04tmrZpatHk1ElFkzB/Yur4ogmbxheNSy0oKtxUUDSlgIxNzS8aw3Ki0YNAFP7WR62KOhil
6Asi6yNpfeSeyIORrD7iYARdGU58wlaGXRrGfJBQSUKjQy8N3RB6f6jNR0SYUe+/yp/W+63yo+l+
Xr/X/fb4KeB3sx/1udRng8/9Pmyyz3yf73w6fZT7fcj9/An+GmeT+Xxex5kPN9PM18tTM/J9XNEu
79g0Fxua5hrhmuxil7qI15Wame91xfXNH2FMNuYbbINBvEZCUv53WqdGvRoWfOfsdNJOp/lvt92E
APFFYA5zjUhgdD7q45YgYiN4tNg8Y3pKyvh2tXPa+FbHlNmtZHVr/HSTeqfOarWvboWiWbOLNxNy
SclmQkfPaA0wP/wR6fPXrYNRkeNbI6cXt94cWTK+dRVGvGakEyMQuTkIRpWkzGtsbmxsSmlMQYJh
XiPmNDXjrwCCFLG5ySxpagSskvIHP2aNRhOaRaXG5vnN2AcWYHajyDZT80SVP+rjf/XnDzn53/gh
/ycH/3/7J2T+PLABdDSy3TbzOwoVcmGi+W9uHgMXuRGCYTB5aWtenqO/ug2TFNzkJfNfv5EbvX0U
6goPH+EZYF/LpvoVjlDX0hkw4thHH+5A8op/btorJO3DA+8c8D22wy837cDOAxnpxC/GT4QATlXV
bvfEptIBfRNysrIyh9MB2QmeWE5FXnbOwOEsKzOKsoCunOHUTBO2+7fJbMyxOLosZsj0DBtJiQ+O
7uNwsOgoV3yW22f8RE9OYphNcdiZzaH2zRnlKWoZF/uqFtI3IrJviIYYGYF47GkbP3LIxo/OVPKO
Pka/yi0eHmdf5tKpzem4MTEqMC4jYth4l4/LxsODwyJUhx/XkgtKj10XFh+sacHxYRHxZl/xx8x/
yxPceUR5xhYAsZAAn5hmp6j4YYjr/Gqr7kMmeNo7v/JGmbF4w+UJcUEQ4UEJuuaJ1cCteIifJyEe
Xbk3yquDQfyZYfSNjPN4ojRXEHhiQ1T/yGn+RbYiCBkxYoR/cO4gvyw/lOz8eXOzwiYeyCShafPm
hoW8kpm14sLt20nI9nlzZTQjHY1TeO9pPGBG/p3RMtJTUkrig4LkuvVlMSpnntiEhJyBRC5WsOph
Mcpmwx40KCMrN8pQZnaETVNckQNSUrMD7Aa51O7rGZ41JL+vn/1p8hCpK4tLDrQxp6+LKMd4H12x
Byd7lDP9AnXG9KA+O46Z/4/h5M5vFMPmQa28WMq2LQJSttHngEMIKYUYSLBYTDDPY32mK3jYemhA
eoiZlW4e2LzOU5CfsInHUnYeGGESgrqIAgp/7F/tICO9JD6AS+XN9s/JQdbtgZaemhocGBBFTYU2
RaIYzK4FjZjdnHf+O1dPKb7pw/NzKorywjU7UzTu9EktrMyfuKyoX9rMMybmLyxMc2mGQ9ke6gn1
D46LCZp22+Fbbydw3yz/yIRw/4iEiKjkMMOT4hnRfEdVw501A2IS3Y4Q80+ZwbrOI/bTcf8OhV1S
Sl7dlZ4enJampYaEhLXTiq1xGYahYeQhiMuZGmroIY+S/uCF1M6DW309dEJGe+dBr9uMBfua1CVp
cFp6Rqo9OnFqdFG3YpiaYVoOUyUyM0eQtJ0HMv2yfE3ilzssLSvLLwul+8B/dhQpc2kK/DzEVDxU
QeLx687MNq0I6iDJMrXRjAbaT9cj0+Pj0iMM2nGR4h+dHhubHu3POq6melQa5kfqOf3vTR2V7jZI
iEJiXdFJg+I3h/cNdcVpvprdjkSJPLrX5acxm+6rKxFHP+vOPzsrx8eTm/zbMUaSB8f5cGxlfoeH
66AwXIcISIJVciU2x9kfpVeAH0TSp7xO8IsXmoXbMGWL3W6YG9PaoSRlqzdwqiHYR65TcOcdSDGl
62tuvfAH/7mGKDDTynp6SygmM0qxZaea2aaGKizvnMdX1biiMvsmZEUZGYkkI3V6U8uMfh0H0vMn
JtUvGVGUE8HOr72rcWhHeTfva9PS1ODh81eW5RUn6x2FscOKUANHdO5ja23xUAiPdtnAkfSaB+Iy
4zKNcPN9CxippjIMBI30f9BvIF5BQ7t4GIq3OF5jZLgtaXqQ4DLIvEny2uTGO5Aywj8390CKX25u
WpovisMUir+ZOCC2cep/qNsukcWmKl3uRvqlVLuVPnGb29naCefcVz66sXhImK44fTSeNaWuMH3C
gIj0iWVVZRPTxzRvKEmdM2V4gGqjTHXpenr+nIEp3pTAtMkVVRWT0sl5C9cvyg6Kjg3LSI1ODtNj
EmOCk4cn9BuRkZI+rKhp6tx1c1N5SFQAD/aERSaGGREx4YHx2ZEpsrwR5W50HmFfo8bFQpGlb2Bv
p1duCfGz+3fJwR/vQ7d6I3uoSCZJ237sFZTe5n9Yq0siMceVKKbLGceY3vlrm+bj7HjMFZWVgArk
6nhM45rNhoRdhtKwKbdGJoUaRw90q04fIzQpMio5VNdDk839Mha1Zgl7F7LAS5Is++4Mzm6ns7dC
374wuJ2O8fr6sWDyQzAJbjeyyW/ZJNu8Z3MaLjIhOzt1ZHI7CfGG74klbEXsuljqjZ0SuyCW+cRG
x1JDiY1VIts793i5gfxFhviSiZFHUscNM32yExPD9nqNiQqEpEltOJCSIr3d3Lnz5x4wPV/K3NMP
zD0dHcb2XNSQzFwUmNfn//BshCU0XXBCwoAB1hHKXI+sAdlSL60cRZhAVWpqUFZmzkC2JCAluX+S
38B1p4xtmZk+bNnWlpl+fUemjyifkOWr++l2LSJ/Xt2Q6qsW9Pt5wbBTckLHjhhQkhrNfVXVl48d
Miq+sKZgUuP4uJzkEckBEbERPCwhODou0hPVJ6nogjnv+8dlxQzy5mSb63pW5z4FbPWQDMPgamtd
tZicR+kCCIQUeh4awkAtZ0CMYkvvUj/0teO9roRx4fm+E3LFbs01H215bRO7dusIlAl6Bcskmovx
4L/ax/GtTvsGHjeQctMH+snjjM0SqOoXFCSsJWSXXTq7/6SxY+JQfaOik0I1A/1LfHqkEZuXV5BY
vmZmYsdRv+TRWaHpWTlRA0oHZOT1DyD7W7ZdUOCXMDipVPfRFEXz0W0ezVe323VfraMPeiQ++YIt
zbmnTsvgsTmJHe/ljc2cYv6F04LOr1kMewcGwI3dJ5++22iTOPngjX/34S7OfHjXZ5zyCCmADNRG
XScTM/oJ9vuZTwC9zoldB5iU7iPQ9kzrCPTv9dTrLNRlI+3SRNp7HoSQFZsaMnjczNRFG2oGjl66
sSxx4ugBQU4bC/D1S8guyCyrCsuamJU9flCCy2moSmuYJ8QnOCbM17tia9MFz6wajmYwyCfEEzo4
DVXvmssLFo+Lj06I1sKFHRmPduRlWy2ewHPhKktaenjuo3QeAKTRBq/WJyZfz+0brvDkLmXBvVro
dYaMyxb8ZWNqq5dPtE3osn5SU0aYx0Vr6zv/1T56nl567tnMoOBupWMJCT0PjwPZy1pIUpQ7MVQf
c82chetKErPKLp8/fvlQXahchHEkpzwnY2xKoH9SXnZYRlaOO7ZLvcrHTUONKjfVbtgQ8lmXrh3L
zivImFY5YNCp0zN9YgcmmnIb12n+rwPvQgpkE5uU25Y+fWL6mW+sU7KVdlNyMaxfn340vN8zimnq
gl1kIii+Cp0wRVmg0JuVVoUqSkQaSmSLD5looteNddL2JowL+Qm4L6d+jDtDDDLRGYIVnL96I7qU
KGUnmrcDlqWbe/q8uSkH5s1FeWd+iO49TUj8f3dsYRbsnpgeehvYW7tpYN8csU4qezAp7tgn4UPm
jhxVUZju4zQcjCoO1+BZTaNatiwdMnzJ3afWb1iYfpjNnp8+Ni2UkiOp/XLnjoztE9xH9Y8JDYoO
8uEhwX5Dlz+youWJ8/NHNd88z33qsrhh09Nw74d2HqHX2pbieb7RWpUgX8Bj1Pwt6cnxWjuJ3JIz
Niyh/fidS/SD3vQC9wTfAnF4Fs57BG7z7VnHtmeZNzsP4/norzXqYRqFPgZKKdh7niTR+XT5HCEV
hV6rODS76hcaGxzeN8y4zXT+AX1uMyIy4+IyIvX6Pn1smFUXN7Flat/8RO5UlEORnj6q6lD94oek
TNOCEyMHph1L1XzM04OPRt9MGxiZGKyNn33R7FS8DQ/tizI5C086b6JPyYTarhOmTue3ZSYHtNMF
W/BQ4dvFmm87meh1evuPi8sPnSA3Y9fJ2NQu02qFt/21+r3uO4Q/QC5/7zDETSDu4TeNiIy4+IwI
o09cbkJ62YAu/9CFIy8snL1iYmxsF6Pk2MhxAyLzRx+7vyunp2/wjhhadXG5uU9P6zxC1tkmofOM
gTGS+ycgiD6BNxqB6FM1iCZnPOAN9S2Us38HJ0/kIxdc+d+X9ebKYqKPabdxXZGVILL8xJn3GT6j
aMiwohlDu+fOlqOtwZkiF+kTBg8qnDAkV64SWY6rFAgjrDtRH1cgQUeia8QFRFcAV+sBr+abL6dD
0sR8xDlnbviWruyTzvD3s4r9vdjkHOxOtGpTYJN1Js7vY+6dqKhMzfyeaMrwvuZJJBN8eyhA2/hx
ce3H/eBEL/eOHDc8v/+gwv4TjmsF3jF0GXYUcO7OA+ajrVwh5n+rsz/Rsz9SvECpeMHywBJodxoR
6fEJeGPr5xkQ339ODsopzpSTX2xOXOqcbnXUwpKi3cnB2rgrpgwsHpPplzhx/Pi+JcvHu7vlSf36
n6CYv89hZ3bFFk2ZEpwyND5leN8+QxetmQhduxXXIBPOttYguY8p9CixaSEKN9/BLXi8EJvQ6NqE
Om7C5NC4wm4Z+UsJWffBXYL+Z1r+tR0c+Gc7uFtk103/kx3cSywojlLcvwV4HlZQGn2gL5zetX8D
aDOeTqKQamjwpbKEtpMwr9NnnCfEureP6Hl6FUpn7eq/2qKHPe/yYV0H266zhqIMXd5+Rktr06Bh
yx86Y2lr46COY4GZ00cMmpETHpQxY3jujJwwsq/hsdXjRp3VvqTh8QvHjTyr/exRddNSkybXjUXs
nzSpzjz1d1ylAHLZ89Qfk6N1nfrP/0en/kLfyf/2qf/P+uh56j+JCvzRqR8PXvP6jhw21N2tC6FJ
0VF4+u87ftL0tDLz1H/EL2l0ZmiGeepfkJ0xpl8gOdDyxAUFPtGp0R1zuiyT8lGXYlQnDksKmHhB
W0tu9bQMH/PU//7owsypC+W+oY+KO+J6a98k+KDF9BoQ5qNFa2kaczHNPPDgDsCDwHSv5k0Zl+AT
6C4MFHrfZVPmmyep7daO0f68/glu/2RbRMjHTh/FU47mCAiN8g9M7o8b5YQN4hk+aFCEK8odotsU
ysbHpYZpppuPG9rv2M7fb5G6zJEJPkx1akag+TfCCzv30UPIfSHsO/4UKbX7KVKeNxYMJZWk7h2I
7kT70m+g1zQEA90DKROPfnyGkqHmM8Zw8fhnr/noZ1yQr3l3DkHEVwk61K0UKB/r+c9c8QBo/twU
3wNz8bfXwyWv+394tH/hmRM9lFt1yfTM2QXpQYbiMJx6ircoJ3ZA3/+vvWsPbuM477u3uDscHof3
+0GAIAAChxcBAhDfJ4oviC/xIVmiJEpUJcoqZUuylDiyKzex48RRLUd285g8xskktjOxJjFjiRJK
ehpPItuJG43VRONJ25HH7fiP1LFcxa7raW2C3bsDSJClXVpWPJMM8JvvACzvbne/b7/X7hJn9Lf0
D/W3+JPjXxwND/IRg1yGEK2SM4GG3kR10qMNtA4ODbYGoLvv2EBQY7GaohGXz0Tb3HbWXmt3cx5n
dYQfa+On+sIqvUmjMVVZHNVG2mQ1sXafsSrscXoj/DYsJcvCG8RDsp+ARvC3kpQu6HTqphDwRQXv
alFHS5oZxTHmWV+PS10qUAsJpqWnTtifwtNF5mDlvCSattR88mJSJ4X+fweiN3ITydrLVg9Tlwez
5lKITzyk1PviWWfv7T3VUwajMCz/UumSvMDPFGIk+/NYk9Fj09GUkiLvisQNOPAJDH5mGP5SilNf
wCpOkljFX5Ai2cLOXI5maNpUg7l1XMhN0fPYE04VNVoZlBLTKmIXrzFEc0ElacvVWEvBwooUUtBQ
0eyLOSi7ltNXyzeXglXR6meyS5nnrwSD5g1ZsXMb3nGi3yt2Hqu03o9d4ES2lHFWl/u1W780SSwW
FORdohMkhkoluN8eHAGcwv2Ogwelfj8DqomTwApqiDDPxKwYwKJU5YkJXsML62LIrPTEgc+nxEHa
jFDmUYZyPqXOldMtOXXMC1vcbr2K+6pvsMX1DXar9ipWLzv+ql+ayXXwq14rMMZc9AAISasIWQNO
vYtxlMEgGDmzmaIRul8OnY2JaLZKI3v8cRnrqg9H6q2Qefc1Btob6iJpN0t+51GkskeDkbQFKl+p
15lZEjFqBWwp/FyhZhDJmnXwAvy23sZSiFIrCi/DsFwll8lYm7EwhTlkLnwVncMcqgG3Shw6DxmG
BXZs6drP8zV2j8JuzRNHMStYe1XOpjDkFL2yQdBbih4FVliviJywa69KHIgLs7q8atXTce+9SBoO
WUMgEISB+lK/UwZxOsJspIn7DjKb+msTVoK+U20iC5fU1oY4l3Sy9K/Rs5QhkuUaHPLCRZuZ1lp1
kKNsLKr3+U1ypLJZ5s8QE3adXG7224QY8MTC2/AJKDxRmHmaQX2gDbfNX55lPLF+dJRfv3mEP72T
b9s6zreJv7Ze+Ee0hXwJhwy2Z3B2048vB8TA0wotCeJxrAhXsXgNRdEVFx7p90mti/OG6h0yitgi
0zqjnnDKLiML82qtgpRrbTrqy2qd9El4OgXWyMtkDagHPeC1kp/ZuPDsBQ2ubSPk2vLEmXMqp1OV
niU+B4AwZSv8Rfh1AxXUIFVjyRI15mHr2USCDBSD2fLkuo1nDNs6RC3tELYN8uSupaCstLiDB+6V
nZww2yEu8uzkHDO4ARp0s2qoS0BcRbmLka10KfSKsKcYE6LLzceePDT2hT2tflbDDdz91GcC/e0x
jZwkkJxVqAKZXGLocJcHmhs2DET2PLgtXCjoa9vjzkx9wmSNd8djnTErnN7zg+Odof7bT35ve98T
3334Np5h9WqtwWmsClkUaq2qef8DfazTqM7sfehwqj/tUGBVmfryqK+6dUT4zYgWUU5+HDNnQTd0
lySVW3j2vCCPHEzMEYeAEdQSh3iFW+NzGzEU62aJM6LQFJLQNAi054l7zynSLWS5ZzLwjG1bp8i+
TmHv5jL2YWMh2FzBb0vRAD5IlgXLiM8xGyDTDpn1UM5DhQxS3ZDqglQnpDoglYVUBlJpSNVDKgWZ
GGSikIlAhoNMGFJeiDxQiduuQR+xPZIsgZgol7+geFwW5GdjaNHlCVst3AjWL87IWjIZA/4WZJG0
LoAut9w5ffT2Jw6v866faEsNN7qztz12cOobe+JV64brW3a3+wqvGLk2bnTYFOlK5AbdtvSmdKwr
Ztm3d88E3L715K66yOYTQ9mJkZzXub5/R2bgr3cmY6Of6o5v29Tt8vSMjBMtvnVBY3+HJ5OI2bk9
8+f9LZmk3ZbMtvgGhkeF+Y0GLOmXsaQNgAMvlOQcLco5Co2zxFexSK+UidQzh4sUwCFFto4SHx15
OIq1dcRvxaWLK6abyxb9ROVYlK0kTz2ug/FARgEJIySE+zvyN3hjaSID33a1rEtWlnXJ0MvJIzP3
3f/jyVDqyMy99z81WVt4V2GqiqyrbuqP6s3xjfXB5qjbQBMPfut/pse3n3n32998T3z/4Y5Tt/bg
EXHHk0dOzkxxtmTf3nuwbfoKVplp0gJiYKY486JmQpCphfIghHqYEBeqMP/4BEQglCceOeu2KnX5
hVdmcKHOoM/DEzzjGw5ptFBJaoVtpjw1uhi+JtvmL8E4d+liSlg3xPErEAeeg7eGamEI11NWlVDD
Wu4njOidoDSAxYhlcXkxhYMtKiDGb1l/cXpDJy4kTFNKlpnPyFkci+FPf7hscekoQs6qoJnUWINV
gbhV/htGoyT3OoPCbh1x548SbTyqJHXhgLXKzMrPyUgEcWzMvPcbpVWYW9yKefcMHn+tUF/kHSuL
QBlW2UbINEAlny+ORR6a88Sb51N+DNAwS7wJlAuvS8NSiYeNMpyHB87r1jV4PA2rDaEDvDplpmIj
2sU8ddsSV7iklCJwugbB3FwT3QN37ZIU1QgjVVB+KDDdsKx1uFUadDNrXjI1cKVgstlWtGKlkVq0
M7S4KPwMqdAq5q1mj5GhtDbjqxuGYzpTqDXctL0zpmbUchJRCtuGPZ/m9319b5217+QdX4cFhU5F
TblCdqXcEvF5436f6XrX0V2barxNEZvbX6VyxqstVRad1e+zpraf6Gm769SZI99S2UJYdpuFNQws
u61wfTEbkXdDRRdUjpWENgbr8sQvefXASGCADwwMBHjEOmaJf8cm5XfnhBNYYeVAFCKLOcl2zsEt
oAkwcPy8rgnDnCkyNFNiaEZQ/dxIJA9lvM7jIXPCBgPYv7jLYMsyuyC4Yuw9uPIdDIJor2DfYsEl
cZzzLAnYwauLHcAN16A/fmOWpF2yWZQYny2mooRvaZW5VLKa+E1uhM5v/Hz+tvZj2xr1DI20WkVd
3+T67GiTy9d5oPuwWq/CaZJOdaRxrMVj5jpi9TtyKZUQExMUY2wdv7tn/OG/SLkbb2noONhbC++e
+Npk2uB0a42OEM5BHFUOe3xDKNqTctLmYJXLb5Q7kt2ct4mzVfk9tDHgtnnNWkOgxhYZOd7XNLlp
HYvk6U37sH+pwbnIa6QRhLF1fLuo4UY6BmkOUk5IayHNQkoNlaKRVAoDIYFZH/Nq88T+c0GZDERn
CQaYF97i1fiPZkcsKDI3iJl7ToZ7yeXhvnO8d1hR2juBuZya5y4mscnEChxPXUsmxUlurui+HXwm
qIHBGAxyMOCEQS0MsjCghqu0SWzK2muUpLk8ShBXtXyLC93pRWWGS5bVDH3Qi14z6Y+q3ImAsGpT
0LFmDY1onNE8Qlq59niqhzMe1VoKB4jCGXgLPJZKv17K916nbfGgJx6oNhDPMWpGJmyYev+dOuLz
8z8S4ubdWEenSRa0gt8VdZTMQDK9zLBm84RqpjZZm2Rds8RFMYITJSHpJA6E/Werq8nyUb/36cgQ
k4d7LhisInOs5WNd3K4nbYaS4mxucVqnpGeGcAaGs7DYFNGKfpxqllvNJVVaNq0jRGFCAlTcjSVO
RniL60doOnf/3B3NB7dkdTjOljEquSK0YfeGxl3tNW5+Mte4K+yyVVUT+xitkjQZC/W+zsCB7x9q
hI8dePxIs8Zi0ehtAbuwvdXitFjTm9YleuvtKleQSNb6VHbO3Zwp/F5G1O06BRYWSjkQQSHpqZFD
WEPmsISqwKMlCekhqYNKb0lCXoi14R/OUpRJN0cIF5lKEjJhxplIXYllOnFo2oeU5duNhLEvLuuW
8Z8tVoFvrUEfev0KE0XDUv7nLU7xiI5nTkar5IUtlKE6HUy3ugg5fHH+VZNJWKJCUG9ladl3XJzf
a3jfr9YyiNZYdOitbLObc6poawTzpJhvYJ78SvxVvXb8/afYsyRAO/htKSrtKOaJHdCFvcrDZwHL
gvyybKMpTxy/4OfFscLnYe1Zj4cuH09hngmPLA4lHBbRW8oDfTExvHZRYFh5WtiBb80Ls40KbNuX
bs4zwt21K/zBh1Yh1VGWG8pWTj9my/coFHcMLkauGfRTbXTwxNm7uM1ddWYFwuquirRtqhs91lNN
xO4d3X96LNR4x5OHx744sd6vKbxnTfQk4h1RsyHUHm/cT/xs8Iffe+Q2XqU3mmprvLVmmtWzzZNf
2OjiMpOP7Jj4/p3t4YFDDzyanDq9pcbbPFyXHkrbfcJPiDwqAfZ/CF7944N4bC1A3mW4ugRZcwU3
CrL2A/EitXsVvC+B/sX/hXz4E8BlAYx/Ddi/BEVIMV0Ope8D8JwAVYcEtWUV/PhGIDzZ6v/BnIar
oIIKPgRda8Sdf7rQ9mp7dfzHxL/pP2sYNx42JUz/bYbm+8x/YxmuoIIKKqigggoqqKCCCiqooIIK
KqigggoqqKCCG4O4vg/FR1MYi8+u+DWgwN/jdw8YKz3NYrUX2ooOojfQNfQm+g90Hf0BvYXeRv+J
3llxmvDcQP0ql3eIx1vE43jxGYSrvCAhPr3aDt2wFn8bgzvF0kPwU/DT8AT8Ev78IDwNvwlnxPLn
4Qu4xitivTKhX9ePLyzgo0c44u+lpxj+qfVJ3HMPTwMSyD+49cteK867Dq4vLG9EsSvsEsGX8Ps/
AcsNUTMY/HMgqgBO3SyStX8woV+AtlXpv4CqQhX6xOlt0P1RSdYL7kHbQM9aCJ/bu4xosHEtRDwA
bH8OJPCqRPBdMHWT6J7ViLp3qa5VqR/L46NQ2bXEb5cTqgO5tRDxPLB8UoTbefzjEvoR8KAXgblC
FapQhSpUoRshwgdO3ExChwFRoU+ecH48itHyMdEAvgK2gs2gBuzGdxvCJe3FXJyc/defTD81u0vT
/A6wScn73O//Svj/C/DSMeZf3vvn+VPMG/Rz+FwGEFLu/r8p6aMECmVuZHN0cmVhbQplbmRvYmoK
NzEgMCBvYmoKPDwvRmlsdGVyIC9GbGF0ZURlY29kZSAvU3VidHlwZSAvVHlwZTFDIC9MZW5ndGgg
MTg1ID4+c3RyZWFtCnicY2RgYWJgZGRkcyzKTMwBsRR/SDP+kGH6Icv8Q46HoZuHuZuHZdH3aqHv
+YLfc/i/ZwowsDAymvtEztQIDQrX1NbWcc4vqCzKTM8oUTAyMDBTSKpUgMoouKQWZ6bnKagBGWWp
OfkFual5JX6ZuUmlxQrBiXnFCj4KQanppTmJRSiCCPPIs4GBgYFRAYgZmBgZWdi/r+IDopJFPxbM
/+4732cR202uB9w3J/DwPJjCw8vAAADHDE9TCmVuZHN0cmVhbQplbmRvYmoKNzIgMCBvYmoKPDwv
RmlsdGVyIC9GbGF0ZURlY29kZSAvU3VidHlwZSAvVHlwZTFDIC9MZW5ndGggMTg5ID4+c3RyZWFt
CnicY2RgYWJgZGTkdizKTMzRccrPSQFxFX9IM/6QYfohy/xDjoehm4e5m4dl2fdaoe+Fgt/z+L9n
CzCwMDKae4ZN0wgNCtfU1tZxzi+oLMpMzyhRMDIwMFNIqlSAyii4pBZnpucpqAEZZak5+QW5qXkl
fpm5SaXFCsGJecUKPgogS1FEEIaRZzwDAwOjAhAzMDEysrB/X8UHRCWLfmyY/912fvQitu9cXN/l
ub9zTeHh+S4/nYeXgQEAlolQiQplbmRzdHJlYW0KZW5kb2JqCjczIDAgb2JqCjw8L0ZpbHRlciAv
RmxhdGVEZWNvZGUgL0xlbmd0aDEgNTEyMDQgL0xlbmd0aCAyMDg1MSA+PnN0cmVhbQp4nOy9B3wV
xfo3/szO7tk9Z/fMSe8kJ4SE9JCekAAHUiAJHQIJNR0CaaRQFAQ7Yr1i5dqvHa+G2BBRUbH33hEV
u1iwIQr5PzuzCUnEK7f83v/vfT/3LPt8p+/Md555ntk9mwMQAGCwAShUTZxVPsGTd8dBTPkKoMwx
bVZKGvDPfU0o5tQ2V7eJ+L27AMittSs73TtOev4JLIt1FL+GtiXN134x4TaAGQaA3XdJ05oGUX71
twARB5bWV9d9/c45LQBPPIuJWUsxwXkLKwSY58b4iKXNnaut6+3GTtmaWmurRfyyfQDh7zZXr24L
ftH7fCyPdcDdUt1c/0zvROzTvDoA59K21o7OXi84A2CJ2b67rb2+bfGjvXsxjuPxlsAcq4NcYp8M
tHZNexP4LWmvXw6nNFV3tsB2cACZNXOCG/IBenshAAywQRhEgQ8kQyaMhvFQBhWwCNuYCXWwDNpg
JayFU2AjnGfVcIIKw2AE+EIKZEEeTIDJUAmL8bqzoB6WwwpYBevgVDgLzgfZHBevxUCDcIgGPxgF
2Xj1ApgC86AKJJgNDdAE7bAaToLTYBNcgKVpyfTpk2DyzGlT3NAwe2aZG67i7QSBC+wQAcEQA/6Q
CmOgECbBVJgP1Ti38VAOS6AZOmANrIfT4Wz4C6/lADeMxFbTIAfGQhFMgwS4kOcEgxfmRkIIxEIg
pEMujINiKIHpsABqsPeJMAeWQgt0wgmoPWfAObDZ6oc36DAcQiEOwxnggYlQCjNgIdSCAkkwFxqh
FbrgRDgZzoRz4SK4uDato5Zu4HIjlxdweRmX13B5c211Uyft5nIHl7u5fJ7LN7n8sLa6o55+xeUB
Lg9yecSUssylo7a2uU324jKcy0QuR3M5ics5XNbVNTUukdu4XMnl2rqW1mb5FC43cnkelxdxuYXL
a7i8saG9ula+jct7uNzF5dNcvsrlHi4/w4ar5QNcHuTyiCkVuamlq1lxcOnFZQCXYVwO5zKWy2Rc
JU1KBpejuZzA5SQup2KRdmU2l/O4rOKygcsmLtu5XN1qtnYSl6dxuYnLC7i8hMsruLyutb2uRbmZ
y9u5vKvNTN/B5S4uH+fyWS5f5vJNLvd04Ewp+7j8gssDXB7k8ogpbbaOxpYGm8GlD5dBXIZzOYLL
+I7m2jbbKC5Hc1nI5VQuK7is6egYlWpr4rKTy7VcnsblOVxehDLNdgWX13N5G5d3cbmTy90o023P
cvkql+9yuY/Lr7j8AWWG7TdTqhKXGpeMSz8uQ1Bmqm4uY7hM5DKNyxwux3Z01XSohVyWcjmdyzlc
LuCypqOrrUNdymULl51cnsDlBi7P6ES21XO4vJDLy7i8isvrubyVy240QxLaHv9/Aimu7jC0dP9K
iKBV+TOp4GFDW6qhRftPxWQeE2EC7t9JdpySonUz0NL/eyGClvrY0ve4JeUzQrknIRgyJeESuNSP
W/octwz/nfQ+bhnJ+ytzJAOk2fOBaa4/lRQ9ViB6qH8uFMRDEvqmqH8KR6Bv/mcwBj3q8SNB//rn
Mu445J/zRtCb/7n0Oi6Zjt5/Ne59LoObce/0JLwJn8FBopEgEktyyCRSQZaS1WQjuYzcTLaTJ8mb
5DNyUNKkIClNqpLOk66SbpcelJ6X9khfS0coo+E0mY6lU+ki2kJPoufRq+jt9EH6PK5f83qa0G3a
MiR+ypD4RUPiDw6J7xoQx3VDPxwQt6HJSAaVDIg7Ng2OGwcH13dNHty+X/fguP+cwe37LxsSXzuk
/FVD4j1D4h8OjgeMGhI/aUj8xiHx5wf3P+ynwfnhPoPj0RuHxDcNiOO6jT5nSP4eHpfQivuIEY68
TWBsG8+R0YYGoOWIEalxiRZmWeixcPKxSsdfYOEWC6+3cAjr8Z8MHmXChYPjqUNYT319cDxjweB4
ZvGQ+KQh8X1D4p8MjmfBkLg0JB4zJL5zgNZhIPfBIfG9g8vnDtGK3+X/MCQ+ZNZzDw6e1fwfUDJk
qpZcDA3kCu5lavAAchG5CIjip/hjmoS+jCoOxVCcZgkiEayLqz8WCJlOpvMSPmAzzncZxnkuh8vm
0jDFRvaT/VjuW/ItljtADoBEfiQ/AmVnsjNBZmexs9BTmxok0SI6yeyR5COZ1/MCBe2EL/WnCXQU
xhXqpOhLqRf1AkL9qB/WiKfxQGkKTcHeE5KMIwrAu6p2uAIeh71wiPjhSDQcm59xKUjGecZlKM83
Lkd5AXLghT7CjRZ3FE5ZvisZqOSF/U7haLhGIfpjPJWj4QoDCWPhKA2XG6XJmKn3ITDcFQMUx+tw
jeRouGIRNYzHcTQGlIy3SiZYJROtkklWyb7+/oX390Le3828v305F/Gci3nOJQNzXF68hz68h368
h305ATwniOeE8BzUSQkPXLy6pAORvCSsLfkj89Q4xzgXZOydDXAOcRZVbMfcERA6HMR+Ix7rn4Kj
OgWjLuKC9SSEDIMNXBtOI/PIAjidNJFm2EhaSStsIitIJ5xNNpFNcD56iMvhAvId+Q4uJD+Rn2Az
+ZX8CheZ6gMXSzbJBpdIhmTApZK35A2XSQFSAFwuhUqhsEWKkqLgr1KcFAdXSKOk6XCl1Cl1wYPS
KmkV7JJOkE6Ah6V10knwiHSadBrsls6UzoTHpIuki+Bx6VLpUnhCul56A55ETWLwG82gGXCETqCF
0EtLaAmR6JX0SkLlTvlaIivNSjNJU1qVVpKurFBWkAylQ+kgmco6ZR3JUtYr60m2crJyMslR3rNd
SHIdlztuIt84ntMnkiPGHONsaY1xrbFPusN5q7Nb+t75mPNl6RCbxKZSjS1hS6iLNbJG6sWWs+XU
mzWzZurDWlkr9WUr2ArqxzpYB/VnXayLBrBVbBUNZCewE2gQW8vW0mB2EjuJhrANbAMNZaewU2gY
O42dRoexM9gZNJxtZBtpBNvENlE3O4+dRyPZ9ex6Opzdym6lUew2dhsdwW5nt9Nodie7k8awu9nd
dCS7l91LY9n97H4axx5gD9B49hB7iCawx9hjNJE9wZ6gSewZ9gxNZs+z52kKe5G9SEexV9grNJW9
xl6jaexN9iZNZ2+zt2kGe5e9SzPZHraHZrG9bC/NZh+yD2kO28f20Vz2CfuEjmafsc9oHvuCfUHz
2VfsKzqGfc2+pmPZt+xbOo4dYAeoh/3AfqDj2c/sZzqB/cJ+oQXsV/YrLWSH2WFaxHpZLy1GBSR0
okt2yXSSS3WptMRld9lpqUt36bTM5XQ56WQXfugUl7fLm051+bp86TSXv8ufTncFugLpDFewK5jO
dIW6Quks1zDXMDrbFeGKoOWuSFckneOKdkXTua50VzqtcGW5smilK8eVQ+e5RrtG0/mufNcYugCV
t5rbOODWjZBD5BBaul7Si9ZDkRSQ+TpT+Dqz8XWmSiFSCGjScGk42KVYKRYcphaCrjQpTWAoLUoL
OJU2pQ2Ygnft4FLWKmvBSzlJOQm8lQ3KBvBhDawBfNlSthT82DK2DPxZE2uCANbCWiCQtbE2CGLt
rB2CWSfrhBC2kq2EULaGrYEwdiI7EYaxdWwdhLP1bD1EsJPZyeBmp7JTIZKdzk6H4dxGR3EbPYKd
y86FaPY39jeIYbewW2Ak28q2Qiz7O/s7xLEe1gPx7C52FySwe9g9kMh2sB2QxHaynZDMHmQPQgrb
zXbDKPY4exxS2dPsaUhjz7HnIJ29wF6ADPYyexky2avsVchib7A3IJu9xd6CHPYOewdy2XvsPRjN
3mfvQx77gH0A+ewj9hGMYR+zj2Es+5R9CuPY5+xz8LAv2Zcwnu1n+2EC+4Z9AwXsO/YdFLLv2fdQ
xH5iP0ExO8gOwkR2iB2CSew39huUsCPsCJS6zG1zmYu6KEzm9m8Kt39T0XY6YBraTgOmuxhazxku
L7S2M10+aG1nufzQ2s52BaCVLXcFoZWd4wpBKzvXFYY+o8IVjj6j0uVGnzHPNcI1Aua70lxpsMCV
6cqEha5sVzYscuW6cmGxK8+VB1X8Po9bW8jgtjbB9H1kIVmIyfWkHoh8r3wvSKqmakC107TT0A7/
V/v+q33/ae0L4dpn7tgl0mj7+L869l8d+w/pGFGW4Z7fiwyXMmixXAFhMBomQCnMhHl417EM9+8n
4M5yE1wIW+A6uBV6YAc8Ak/Dy/A2fAhfwAHc2QOxEcP+IFD7ffYd9oc43m/fxXGn/WGOD9gfRdyB
od0cd9gf43i//XGOO+1PcHzA/hTi/VjuaY477M9wvN/+LMed9uc4PmB/AXEnlnuR4w77Sxzvt7/M
caf9FY4P2F9DfADLvc5xh/0Njvfb3+S40/4Wxwfsj4CEuU+ivN/+PMqd9ldRPvBvMPIOH/l99nct
Zt6zmNljMfO+xcxei5kPLEY+tBj5yGLkY4uRTyxGPrUY+cxi5HOLkS8tRr6yGNlvMfK1xcg3FiPf
WYwcsBj53mLkB4uRHy1G3sbx32ffxxn5gjPy7b/JyM8WIwctRn6xGDlkMfKrxchhi5Ejlq70CmYc
IJhxEMGMQxLMOKhgxiELRhyKYMShCkYcmmDEYReMOByCEYcuGHE4BSMOJhhxuAQjDi/BiMPbYuQn
zshvpqY4bCYjDuPfY8ThKxhx+AlGHP6CEUeAYMQRKBhxBAtGHCGCEUeoxUiYxcgwi5EIixG3xUik
0BXHcIuZKIuZERYz0RYzMRYzIy1G4ixG4i1GEixGEi1GkgQjDh+TEUcQZyTc1BRH7L/JSIrFyCiL
kVSLkTSLkXSLkUyLkSyLkWyLkRyLkVyLkTyLkXyLkTEWI2MtRsZZjIy3GJlgMVJgMVJo6UqRxUyx
xcxEi5lJFjMlFjPJnJEMzshozojH1BT02cTsN39GVwFx5GXpajqZTqMNdAldRpfTDtpFV9E1dB3d
SM+im+jZ9Bx6Lt4Ff0g/ovvox/QT+in9jH5Ov6Bf0q/ofvo1/YZ+S7+jB+j39Af6o3MttusiL5IX
8QJXSVcBoWW0DCQ6lU4FSutoPch0KW0EG22n7aDRTtoJdrqSrsSdwGq6GnS6lq4Fg55ETwUn/Sv9
K/jSHfQ58HOe6DwRcFZxF+KQw+UI2S1HysPlKHmEHC3HyCPNkWGPfuTP+sV+Jcx6NpFk5mEd8bSd
0Kb+ErFWiWTz+RVtwhyQ/eRhWDpWjgV9QD1xXT/ZXw6QA+UgOVgOkUPlMCx79LrmNwAu2Uf2lRXZ
JquyJttlh6zLhuyUGd6Mesne5vcfOLb12EmzjiSPkceCIY+Xx4P5BCYLguiN9GZ6G72D7qaP0cfp
E/RJ+hR9mj5Dn6XPHYtx84kavYHegC3eRG/CvmylW5Hv2+ntOKId9FG83of0y/7Wb8BSWzF3B72f
7qQP0AfpQ3QXfZg+Qh891hzz1m+kN2LrN9ObsfXb6G3Y+h30Dmx9N86LzMdhtp4Mfsds9Rjj4Jx9
aHFm1jtO7eL1TG3AekqLdBecCqfB6XAGnAkb4Sxc12fDOXAunAfnwwXwF1zlm823C+ASuBQug8tx
zf8VroAr4Sq4Gq6Ba9EC/A2uhxvgRrgJboZb0B5shdvg73A73AHdsA2tw51wF9wN98C9sB3uQ1tx
P+yEB+BBeAh2wcNoOR6F3fAYPA5PwJPwFNqRZ+BZeA6ehxfgRXgJrcor8Cq8Bq/DG/AmvIU25h14
F96DPfA+7IUP0OJ8BPvgY/gEPoXP4HO0P1/CV7AfvoZv4Fv4Dq3R9/AD/Ag/wc9wEH6BQ/Ar/AaH
4Qj0ohoTaYY0U5olzZbKpTnSXKlCqpTmSfOlBdJCaZG0WKqSqqUaqVaqk+qlBmmJtFRqlJZJy6Um
qVlqkVqlNmmFdI30pvSW9Lb0jvSu9J60R3pf2it9IH0ofSTtkz6WPpE+lT6TPpe+kL6UvqIOab/0
NdWlb6Rvpe+kA9L30g/Sj9JP0s/SQekX6ZD0q/SbdFg6IvWiGyRUopTKVKE2qlKN2ukMOpPOorPp
ArqQVtFq2kxX0NPo6fQMeibdTC+nV9Buuo3eSe+i2+l99Hn6An2RvkRfpq/QV+lr9HX6Bn2TvkXf
pu/Qd+l7dA99n+6lH8h5cr78svyK/Kr8mvy6/Ib8pvyW/Lb8jvyu/J68R35f3it/IH8ofyTvkz+W
P5E/lT+TP5e/kL+Uv5L3y1/L38jfyt/JB+Tv5R/kH+Wf5J/lg/Iv8iH5V/k3+bB8RO5VvJUAdbI6
RZ2qTlOnqzPUmeosdbZars5R56oVaqU6T52vLlAXqovUxWqVWq3WqLVqnVqvNqhL1KVqo7pMXa42
qc1qCx5teLTj0al2qSvVVepqdY16gnqiulZdp56krlc3qCerp6inqqepp+NxprpRPUvdpJ6tnqOe
q56nnq9eoP5FvVDdrF6kXqxeol6qXqZerm5R/6peoV6pXqVerV6jXqtep/5NvV69Qb1RvUm9Wb1F
vVXdqt6m/l29Xb1DvUe9V92u3qfuUO9Xd6oPqA+qD6m71IfVR9RH1d3qY+rj6hPqk+pT6tPqM+qz
6nPq8+oL6ovqS+rL6ivqq+pr6uvqG+qb6lvq2+o76rvqe+oe9X11r/qB+qH6kbpP/Vj9RP1U/Uz9
XP1C/VL9St2vfq1+o36rfqceUL9Xf1B/VH9Sf1YPqr+oh9Rf1d/UwxrVZE3RbJqqaZpdc2i6Zqjd
6ja1R71TvUu9Wz2i9mqgEU1yPOh4yLHL8bDjEcejjt2OxxyPO55wPOl4yvG04xnHs/rD+iP6o/pu
/TH9cf0J/Un9Kf1p/Vn9Of15/QX9Rf0l/WX9Ff1V/TX9dX2v/oH+of6Rvk//WP9E/1T/TP9c/0L/
Uv9K369/rX+jf6t/p3+v/6D/qP+k/6wf1H/RD+m/GophM1RDM+yGw9ANw/AyvA1fw8/wNwKMQCPI
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
3mcx3ZbN6+T9rh1ke34/9j5LM7RfeQMYMEcixiIscJ8Pae+35nXcnrVwu1b9hyMVPFcP4lRYg1ZL
ilGJcBfXvC5es47bBnM09f3tmCWb+Kr5RzP0n1oXR9dEivX8utryCsl8rtpg9S3utFGpGe4pjbXt
rR2tDZ3ugtb2ttb26s7G1pZk9/imJvfMxiVLOzvcM+s76ttX1tclF1Q3Nda0N7obO9zV7ubWuvr2
FndHdUuHG/MbG9wN1c2NTWvcqxo7l7o7umo6m+rd7a1dLXWNLUs63K1YtLO+GWu21LlrW9tb6ts7
kt0lne6G+urOrvb6Dnd7fXWTu7ETr1HbkejuaK7GHtRWt2HYrNLc1dTZ2IZNtnQ117djyY76Tt5A
h7utvRX7bXYbW29qal3lXooddzc2t1XXdrobW9yd5jiwZ1jF3dTYgtdqbXDXNC7hDYsLddav7sTK
jcvrk93WMEd2uJurW9a4a7tw8KLfnUvx+vWr3O3VOJb2Rhw2Vqxudne1mZfBFpdgSkfjCVi8sxUH
tNIcUrV7VXV7s7iWSXPt0up27Fh9e3I/9aP7ronjMcc/B8nB4bgzk7PTrZwkkTNoCjrbq+vqm6vb
l5vjMft2dC6XIPNtZnJtK9LQ0ljfkTy5qza2uiPOXVfvntje2tq5tLOzbXRKyqpVq5Kb++olY/GU
zjVtrUvaq9uWrkmp7WxobenssIqa4YZqvPxys1xlaxcStMbd1VGPF8cOmdnuapyP+vbmxs7O+jp3
zRreraLyyeMxt51HcLbqusS8rFraWLt0QF3Expbapq46rIr81TV2tDXhBUzm2tobsUAtlqpv6Ux2
9127tQWnNbYxzl3fXGNWOtpUS1/hY/aIFzcVEyepo7O9sVZoT//VTaXpayuPdyC2Ea+CCmyukHZT
zetaV7U0tVYPvCj2uVr0FNUAh4scm4GuzrauTqR9ZWNtvVlmaX1T25ABHc9c8JlIqatvqMalkFzd
0bbavG/p/RHPIPP/wPn9Z5udbpdO6AkfG7FdWiNgdU+4jrBKwMqe8NEIXQI6RZGOnvA8hPae8HyE
FQLaBLT2hI9BaBHQLCo0CVjeM2w8wjIBjT3DJiAs7RlWgLBEQIOAegF1AmpFhRpRoVpAlchbLGBR
T1gRwkIBCwTMFzBPQKWACgFzBcwRUC5gtoCZAmYImC5gmoCpPWGFCFNEbLKAMgGlAkoETBIwUUCx
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
ejI9DT1NPS097T2dPT09/Tx5nqGeYk+Zp8Iz3jPFM90z2zPfs9iz3LPas86zwbPJs9Wz3bPbs99z
2HPMc9Jz1nPec9Fz2XM1lscase5YX2xKbHps/dgmsS1i28TmxHaN7RM7KHZI7LDY0tjRsVWxk2Kn
xc6MnRu7KHZZ7KrYtbEvxkZit8Rui90Zuy/2cOzx2NOxX8RejL0ce9XLvYbX7Y33Brwhbz1vtre5
t7W3vbezt6e3nzfPO9Rb7C3zVngneqd5Z3rnexd7l3tXe9d5N3g3ebd6t3t3efd5D3mPeU95z3rP
ey96L3uvxvE4I84dFx8XiEuPqx/XJK5FXJu43LjucX3iBsUNiRsWVxo3Oq4qblLc9LjquEVxy+NW
x62L2xC3Ke61uB1xu+P2xx2JOxF3Ju6LuAtx38R9Hy/FO+Jd8fHxKfHp8fXjm8S3iG8TnxPfNb53
/ID4wfEF8cPjy+Mr4yfFT4+vjl8Uvzx+Tfz6+JfiN8e/Fr8jfnf8/vjD8cfiT8afif8i/kL8N/Hf
J0gJjgRXgjchKSGYkJmQndAioU1CbkL3hD4JgxKGJAxLKE0YnVCVMClhekJ1woKEJQkrE9YkrE94
KWFzwmsJOxJ2J+xPOJJwPOFUwtmE8wmXEq74wKf6TJ/H5/Ol+NJ99X1Nfa19Ob7uvj6+Qb4hvmG+
Ml+Fb7xvim+Gb65vkW+Zb5Vvre9FX8S3xbfdt9u333fYd8x30nfG94Xvgu8b3/eJUqIj0ZXoTUxK
DCZmJjZMbJrYMrFtYm5iz8QBiUMSixPLE6sSJyVOS5yZODdxUeKyxFWJaxNfTIwkbknclrgzcU/i
wcQjiccTTyWeTTyfeDHxSpKU5EhyJ8UnBZJCSfWSspOaJ7VOap/UOalnUr+kwUnDkkqTRidVJU1K
mpY0M2lu0qKkZUmrktYlbUjalLQ1aXvS7qT9SYeTjiWdTDqT9EXShaRvkr73c7/p9/oD/pC/nj/b
39zfxp/j7+rv7R/kH+ov9pf5K/zj/VP80/2z/Qv8y/yr/Gv9L/oj/i3+bf6d/j3+g/4j/uP+U/6z
/vP+i/7L/qsBHjAC7kB8IBAIBeoFsgPNA60D7QOdAz0D/QJ5gaGB4YHRgfGBqYGZgfmBJYFVgbWB
FwORwJbAtsDOwJ7AwcCRwPHAqcDZwPnAxcDlwNVknmwku5PjkwPJoeR6ydnJzZNbJ7dP7prcJzkv
uSC5NLkieWLytOSZyXOTFyUvS16VvDb5xeRI8pbkbck7k/ckH0w+knw8+VTy2eTzyReTLydfTeEp
Roo7JT4lkBJKqZeSndI8pXVK+5TOKT1T+qXkpQxNKU4pS6lIGZ8yJWV6yuyU+SmLU5anrE5ZnxJJ
2ZqyI2VPyqGUYymnUs6mnE+5mHI55WoqTzVS3anxqYHUUGq91OzU5qmtU9undk7tmdovNS91aGpx
anlqVeqU1Bmpc1MXp65MXZu6IXVz6rbUnal7Ug+mHkk9nnoq9Wzq+dSLqZdTrwZ50Ai6g/HBQDAU
rBfMDjYPtg62D3YO9gz2C+YFhwaLg2XBiuD44JTg9ODs4Pzg4uDy4OrguuCG4Kbg1uD24K7gvuCh
4NHgieDp4LngV8FLwStpkKammWmeNF9aSlp6Wv20Jmkt0tqk5aR1TeudNiBtcFpB2vC08rTKtIlp
U9NmpFWnLUhbkrYybU3a+rSX0janbUvblbY/7UjaibQzaefTLqV9H+IhM+QJ+UIpofRQ/VCTUItQ
m1BOqGuod2hAaHCoIFQaqghNDE0LzQ4tCC0LrQ6tC20IbQptDW0P7QrtCx0KHQ2dCJ0OnQt9FboU
uhKGsBo2w56wL5wSTg/XDzcJtwi3CeeEu4b7hPPCBeHScEV4YnhaeHZ4fnhxeHl4dXhdeEN4U3hr
eHt4V3hf+FD4aPhE+HT4XPir8KXw9+lSuiPdle5NT0oPpmemN0xvmt4yvW16bnr39D7pg9KHpA9L
L00fnV6VPil9WvrM9Lnpi9KXpa9KX5v+YnokfUv6tvSd6XvSD6YfST+efir9bPr59Evp32fwDDPD
mxHISM9omNE0o2VG24zcjO4ZfTIGZQzJGJZRllGZMSljekZ1xqKM5RlrMtZnvJSxOeO1jB0ZuzP2
ZxzOOJZxKuNcxoWMy5mQ6ch0Z/oyUzLTM+tnNslskdkmMyeza2bvzEGZQzOHZ47OHJ85NXNm5vzM
xZnLM1dnrsvckLkpc2vm9sxdmfsyD2UezTyReTrzXOZXmZcyr2SJS6WZ5cnyZaVkpWfVz2qS1SKr
TVZOVtes3lkDsgZnFWQNzyrPqsyamDU1a0ZWddaCrCVZK7PWZK3Peilrc9ZrWTuydmftzzqcdSzr
ZNaZrC/EqY9tJHyZ8FXCnYS7CfcRHiQ8jGdBRJKtR6ja+Crh64TH6SfHBe0g3Q6ScZCMw+bvJtxH
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
vGlquVzzHrvc6GtyNnld5evjK/vHVjk8fwJkHYCsQPhLZEJfyvljtVo6G5CoKYqQk5R6BaugTKxc
0W0y6fFrHHAKpFIhjUJTXKDJZlrn4DFYcRZyiFxidM7jglLWT3IJxO1GnE+qbuibT6ayCYSXttJW
7GU4D20mBRsP900f3bsUEkXRnwhz5td0vcNUXWfc3bv02a8IPF2FFZ3R/st7M0vvjnoLS/TYj1ic
qZNvoxr0SP7pV1mjQqhmNoAossBjOlEiM1tIiVVCSqZZq9Zs0kzJZB7BlCOfmXsXZua/gQiWfdbj
t5j5E8damIZf1zGotuJbAp9c5558lddn5E4+kJWzxEF5WZ3TsbZVrLRXEofyebh885GVd022QH6g
tprIt6++uTXaYXbf4SH296yoMMr9VwP5RJzcEFjz5AQRa/FZjZAt4N+Fvo7evZGIo5gEhgW05/8f
ke08vSVMCTOYRId4elN8SrIuR38qOCZVS48t0iIt0iIt0iIt0iIt0iIt0iIt0iIt0iIt0iIt0iIt
0iIt0iIt0sdT7k1BBP+pyf79D1ECLL7V3/9cf5C3b4Ik+YICITVfMFy7eAChQw88iNAjCH3hscNQ
8aXpx5/4FIP+bx1C/H5ekEKMz8WxuTmQDJZwnn9L1P/EIbmpJvv+ZfWCGsNNbfBxgJeH0AP826B5
JOH4AnoMHc61+BKaRo8jjCr+I5HDSHTt3cS3OW5odxFdnLuuIuszSBRAZ/JMfBeqF7DoK2jr7Vj8
PbQ5z8L30NZbsUiN6EX+v8/CbuSb51fBdh1oQHAMtc/zFOqZ53HUJilFPcKfXM/kSeBvoH7BH5AD
xmB5PxN98N2T6ee+NUj5PkCyrGOefndmKf58dfnw1F9Krx4rvFKwFdrid4jxx38D2ls3ngplbmRz
dHJlYW0KZW5kb2JqCjc2IDAgb2JqCjw8L1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAv
QVdYQk9KK0NhbGlicmkgL0ZvbnRCQm94IFstNTAyIC0zMDcgMTI0MCA5NjMgXQovRmxhZ3MgNjU1
NjggL0FzY2VudCA5NjMgL0NhcEhlaWdodCA5NjMgL0Rlc2NlbnQgLTMwNyAvSXRhbGljQW5nbGUg
MCAvU3RlbVYgMTg2IC9DSURTZXQgODMgMCBSCi9Gb250RmlsZTIgODQgMCBSCj4+ZW5kb2JqCjc3
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
IsXZUsyWIiLFLClmSjFDimYppksxTYqpUkyRYrIUTVJMkqJRigYpJkpRL0WdFLVS1EgxQYrxUoSl
qJaiSoqzpKiUYpwUY6WokKJcijFSlEkxWopRUpRKMVKKEVIMl6JEimIpiqQolKJAinwp8qTIlSJH
imwpsqTIlCIkxTApglIEpPBLkSFFuhRpUvikSJUiRYpkKZKkSJTCK0WCFB4p3FK4pHBK4ZAiXoo4
KexS2KSwSmGRwiyFSQqjFAYp9FLopFCk4FIwTfB+KfqkOCHFl1J8IcVxKT6X4h9SfCbFp1J8IsXH
Uvxdir9J8ZEUH0rxVyk+kOKYFO9L8Z4U70rxjhRvS/GWFH+R4s9SvCnFn6T4oxRvSPG6FH+Q4jUp
XpXi91K8IsXvpPitFL+R4mUpXpLiRSlekOLXUjwvxa+keE6KZ6U4KsURKX4pxS+keEaKp6V4Soon
pXhCip9LcViKn0nxUykel+KQFI9J8RMpfizFo1I8IsXDUhyUoleKA1Lsl+IhKfZJsVeKmBQ9UkSl
eFCKB6S4X4r7pNgjxY+kuFeKH0pxjxR3S3GXFD+Q4k4pvi/F96TYLcUdUtwuxXeluE2KW6X4jhS3
SHGzFDdJcaMUN0ixS4rrpbhOim9Lca0U10jxLSmuluIqKa6UoluKK6S4XIrLpLhUikukkGkPl2kP
l2kPl2kPl2kPl2kPl2kPl2kPl2kPl2kPl2kPl2kPl2kPl2kPl2kPl2kPl2kPl2kPXyuFzH+4zH+4
zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4
zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4zH+4THu4THu4THu4zHa4zHa4zHa4zHa4zHa4
zHa4zHa4zHa4zHZ4zV4hkDXHMqr8yJljGV7QTqpdGMsYC9pBte1EF8Qy7KBtVNtKtIVoM9H5sfTx
oE2x9BrQRqINROupbR3VuojWknFNLH0CaDXRKqKV1GUF0XlE58bS6kDnEC0nWka0lGhJLK0WtJhq
nUQdRIuI2onaiBYSLaDr5lNtHtFcojlErUQtRGcTzSaKEM0imkk0g6iZaDrRNKKpRFOIJhM1EU2K
+RpBjUQNMd8k0ESi+pivCVQX800G1RLVEE2gtvF0XZiomq6rIjqLqJJ6jiMaS5dXEJUTjSEqIxpN
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
cFrAleTEVySfR/xnxd/7Z4WfPVT+vy0fflNRvv3Vokv4Lyg3i6J3/Qtl1sliGG14YnAxzvqa8p4o
pk4q5vwzlLv/nWIpO2M5Zv35UBkqQ+Wflk9FsSXbOlB2/Vtl/xnKMfuwoTJUhspQGSpDZagMlaEy
VIbKUBkqQ2WoDJWhMlSGylAZKkNlqHxT0cczJsGf/fegn8PuG8IQhvD/GUaxW/5d6L5g8/8VKGtY
1v8LGDx3/hK75D8Jt5wJxs5/4v9yNuc/hEHXKs+cCl2QNf8rUB5gwf8q4D53/avQfZcNM/Sy0UMY
whCGMIQh/O+C97N8CcXAbjJcym4UGGz/Pw1TFbvhX4Gyjj3G5tC/h8QMD7/RE33w4YWOyk9Yiln9
N4weeW/rLwU/u87yyhfHT1xped+0H1ULU+jfOPpfs7hBWwplbmRzdHJlYW0KZW5kb2JqCjIgMCBv
YmoKPDwKL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUldCi9Gb250
IDw8Cj4+Ci9YT2JqZWN0IDw8Ci9UUEwxIDE1IDAgUgovVFBMMiAxOCAwIFIKL1RQTDMgMjEgMCBS
Ci9UUEw0IDI0IDAgUgovVFBMNSAyNyAwIFIKL1RQTDYgMzAgMCBSCj4+Cj4+CmVuZG9iago4NSAw
IG9iago8PC9UaXRsZSAoRGVmYXVsdCBWYWx1ZXMgaW4gTWlkZGxlIFBhcmFtZXRlcnMpCi9QYXJl
bnQgODYgMCBSCi9EZXN0IFszIDAgUiAvWFlaIDY5LjAwIDc2OS4wMCBudWxsXQovQ291bnQgMD4+
CmVuZG9iago4NiAwIG9iago8PC9UeXBlIC9PdXRsaW5lcyAvRmlyc3QgODUgMCBSCi9MYXN0IDg1
IDAgUj4+CmVuZG9iago4NyAwIG9iago8PAovUHJvZHVjZXIgKE9ubGluZTJQREYuY29tKQovQ3Jl
YXRvciAoT25saW5lMlBERi5jb20pCi9DcmVhdGlvbkRhdGUgKEQ6MjAxNDA4MjYyMTI5MDIpCj4+
CmVuZG9iago4OCAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMSAwIFIKL09wZW5BY3Rp
b24gWzMgMCBSIC9GaXRIIG51bGxdCi9QYWdlTGF5b3V0IC9PbmVDb2x1bW4KL091dGxpbmVzIDg2
IDAgUgovUGFnZU1vZGUgL1VzZU5vbmUKPj4KZW5kb2JqCnhyZWYKMCA4OQowMDAwMDAwMDAwIDY1
NTM1IGYgCjAwMDAwMDE4NTEgMDAwMDAgbiAKMDAwMDE4NDU2MSAwMDAwMCBuIAowMDAwMDAwMDA5
IDAwMDAwIG4gCjAwMDAwMDAxNzMgMDAwMDAgbiAKMDAwMDAwMDMxMyAwMDAwMCBuIAowMDAwMDAw
NDc3IDAwMDAwIG4gCjAwMDAwMDA2MTkgMDAwMDAgbiAKMDAwMDAwMDc4MyAwMDAwMCBuIAowMDAw
MDAwOTI1IDAwMDAwIG4gCjAwMDAwMDEwOTAgMDAwMDAgbiAKMDAwMDAwMTIzMyAwMDAwMCBuIAow
MDAwMDAxMzk5IDAwMDAwIG4gCjAwMDAwMDE1NDIgMDAwMDAgbiAKMDAwMDAwMTcwOCAwMDAwMCBu
IAowMDAwMDAxOTcwIDAwMDAwIG4gCjAwMDAwMTgyMzkgMDAwMDAgbiAKMDAwMDAxODI3MCAwMDAw
MCBuIAowMDAwMDA0NTQyIDAwMDAwIG4gCjAwMDAwMTgzOTggMDAwMDAgbiAKMDAwMDAxODQyOSAw
MDAwMCBuIAowMDAwMDA3OTI5IDAwMDAwIG4gCjAwMDAwMTg1MjEgMDAwMDAgbiAKMDAwMDAxODU1
MiAwMDAwMCBuIAowMDAwMDExMTUyIDAwMDAwIG4gCjAwMDAwMTg2NTYgMDAwMDAgbiAKMDAwMDAx
ODY4NyAwMDAwMCBuIAowMDAwMDE0NTk2IDAwMDAwIG4gCjAwMDAwMTg3NzkgMDAwMDAgbiAKMDAw
MDAxODgxMCAwMDAwMCBuIAowMDAwMDE3MjI3IDAwMDAwIG4gCjAwMDAwMTg5MDIgMDAwMDAgbiAK
MDAwMDAxODkzMyAwMDAwMCBuIAowMDAwMDE5MDEzIDAwMDAwIG4gCjAwMDAwMTkwNzggMDAwMDAg
biAKMDAwMDAxOTIxOCAwMDAwMCBuIAowMDAwMDE5MzYyIDAwMDAwIG4gCjAwMDAwMTk4MTUgMDAw
MDAgbiAKMDAwMDAyMDIzMyAwMDAwMCBuIAowMDAwMDIwMzk3IDAwMDAwIG4gCjAwMDAwMjA1NjYg
MDAwMDAgbiAKMDAwMDAyMDk3MiAwMDAwMCBuIAowMDAwMDIxNDAwIDAwMDAwIG4gCjAwMDAwMjE3
NjggMDAwMDAgbiAKMDAwMDAyMTkwOSAwMDAwMCBuIAowMDAwMDIyMzMyIDAwMDAwIG4gCjAwMDAw
MjI1NjYgMDAwMDAgbiAKMDAwMDAyMjcyMiAwMDAwMCBuIAowMDAwMDIzMDIwIDAwMDAwIG4gCjAw
MDAwMjMxODAgMDAwMDAgbiAKMDAwMDAyMzM5MCAwMDAwMCBuIAowMDAwMDIzNzE0IDAwMDAwIG4g
CjAwMDAwMjM5MjcgMDAwMDAgbiAKMDAwMDAyNDIzOCAwMDAwMCBuIAowMDAwMDI0NDgzIDAwMDAw
IG4gCjAwMDAwMjQ3MzMgMDAwMDAgbiAKMDAwMDAyNDk2MyAwMDAwMCBuIAowMDAwMDI1MjY3IDAw
MDAwIG4gCjAwMDAwMjU0OTAgMDAwMDAgbiAKMDAwMDAyNTgwNiAwMDAwMCBuIAowMDAwMDI2MDMz
IDAwMDAwIG4gCjAwMDAwMjYzMzAgMDAwMDAgbiAKMDAwMDAyNjY5NyAwMDAwMCBuIAowMDAwMDI3
MDYwIDAwMDAwIG4gCjAwMDAwMjcyOTYgMDAwMDAgbiAKMDAwMDAyNzYwNSAwMDAwMCBuIAowMDAw
MDI3ODE3IDAwMDAwIG4gCjAwMDAwMjc4ODggMDAwMDAgbiAKMDAwMDAyODEwNSAwMDAwMCBuIAow
MDAwMDI4MTc2IDAwMDAwIG4gCjAwMDAwNTU0OTkgMDAwMDAgbiAKMDAwMDA3ODE0NyAwMDAwMCBu
IAowMDAwMDc4NDIwIDAwMDAwIG4gCjAwMDAwNzg2OTcgMDAwMDAgbiAKMDAwMDA5OTYzNiAwMDAw
MCBuIAowMDAwMTE5MzQwIDAwMDAwIG4gCjAwMDAxNDM4ODEgMDAwMDAgbiAKMDAwMDE0NDA5NCAw
MDAwMCBuIAowMDAwMTQ0MTY1IDAwMDAwIG4gCjAwMDAxNjM3MDQgMDAwMDAgbiAKMDAwMDE2Mzc4
OCAwMDAwMCBuIAowMDAwMTY2NzQxIDAwMDAwIG4gCjAwMDAxNjY4MzcgMDAwMDAgbiAKMDAwMDE3
NDQyMyAwMDAwMCBuIAowMDAwMTc0NTQyIDAwMDAwIG4gCjAwMDAxODQ3MzMgMDAwMDAgbiAKMDAw
MDE4NDg1OSAwMDAwMCBuIAowMDAwMTg0OTIyIDAwMDAwIG4gCjAwMDAxODUwMzAgMDAwMDAgbiAK
dHJhaWxlcgo8PAovU2l6ZSA4OQovUm9vdCA4OCAwIFIKL0luZm8gODcgMCBSCj4+CnN0YXJ0eHJl
ZgoxODUxNzAKJSVFT0YK
--047d7bb04446d7393e05018d5637--

.


Author: Nevin Liber <nevin@eviloverlord.com>
Date: Tue, 26 Aug 2014 14:52:08 -0500
Raw View
--f46d043892b1d995a305018da5a5
Content-Type: text/plain; charset=UTF-8

On 26 August 2014 14:30, Hariharan Subramanian <tohari@gmail.com> wrote:

> During the lifecycle of a software, the default value of a parameter can
> change. If the
>
default value of type2 changes then no work need to be done. But if the
> default
> value of type1 changes then wherever a1 was used it should be changed.


I strongly disagree with "no work need to be done".  Changing a default
value is an interface change.  The problem with changing a default
parameter is that it is impossible for the author of the callee to
determine if a particular caller is using the default because it should not
be specified vs. is using it because they knew what the exactly default
value is and not specifying it is a convenient shorthand.  I have to visit
every caller to see if it is still doing what is intended.
--
 Nevin ":-)" Liber  <mailto:nevin@eviloverlord.com>  (847) 691-1404

--

---
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/.

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

<div dir=3D"ltr">On 26 August 2014 14:30, Hariharan Subramanian <span dir=
=3D"ltr">&lt;<a href=3D"mailto:tohari@gmail.com" target=3D"_blank">tohari@g=
mail.com</a>&gt;</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-left-style:solid;p=
adding-left:1ex"><div dir=3D"ltr">During the lifecycle of a software, the d=
efault value of a parameter can change. If the<br>

</div></blockquote><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border=
-left-style:solid;padding-left:1ex">default value of type2 changes then no =
work need to be done. But if the default=C2=A0<br>

value of type1 changes then wherever a1 was used it should be changed.=C2=
=A0</blockquote><div><br></div><div>I strongly disagree with &quot;no work =
need to be done&quot;. =C2=A0Changing a default value is an interface chang=
e. =C2=A0The problem with changing a default parameter is that it is imposs=
ible for the author of the callee to determine if a particular caller is us=
ing the default because it should not be specified vs. is using it because =
they knew what the exactly default value is and not specifying it is a conv=
enient shorthand. =C2=A0I have to visit every caller to see if it is still =
doing what is intended.</div>

</div>-- <br>=C2=A0Nevin &quot;:-)&quot; Liber=C2=A0 &lt;mailto:<a href=3D"=
mailto:nevin@eviloverlord.com" target=3D"_blank">nevin@eviloverlord.com</a>=
&gt;=C2=A0 (847) 691-1404
</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 />

--f46d043892b1d995a305018da5a5--

.


Author: Hariharan Subramanian <tohari@gmail.com>
Date: Thu, 28 Aug 2014 00:42:26 +0530
Raw View
--001a113486d25dceda0501a133ea
Content-Type: text/plain; charset=UTF-8

//file1.h
void foo(int a, int b = 1, int c = 2);

//file2.cpp
void foo(int a, int b, int c) { }
static void usefoo() {
  foo(0, default, 3);
}

For the above code one cannot be 100% sure if the programmer meant default
or meant 1 masquerading as default. But it gives programmer the option of
giving default and actual value for middle parameters. Even if the
programmer is reasonable he/she will not be helpless.

Hariharan S




On Wed, Aug 27, 2014 at 1:22 AM, Nevin Liber <nevin@eviloverlord.com> wrote:

> On 26 August 2014 14:30, Hariharan Subramanian <tohari@gmail.com> wrote:
>
>> During the lifecycle of a software, the default value of a parameter can
>> change. If the
>>
> default value of type2 changes then no work need to be done. But if the
>> default
>> value of type1 changes then wherever a1 was used it should be changed.
>
>
> I strongly disagree with "no work need to be done".  Changing a default
> value is an interface change.  The problem with changing a default
> parameter is that it is impossible for the author of the callee to
> determine if a particular caller is using the default because it should not
> be specified vs. is using it because they knew what the exactly default
> value is and not specifying it is a convenient shorthand.  I have to visit
> every caller to see if it is still doing what is intended.
> --
>  Nevin ":-)" Liber  <mailto:nevin@eviloverlord.com>  (847) 691-1404
>
> --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe
> .
> To unsubscribe from this group and all its topics, 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/.
>

--

---
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/.

--001a113486d25dceda0501a133ea
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>//file1.h</div><div>void foo(int a, int b =3D 1, int =
c =3D 2);</div><div><br></div><div>//file2.cpp</div><div>void foo(int a, in=
t b, int c) { }</div><div>static void usefoo() {</div><div>=C2=A0 foo(0, de=
fault, 3);</div>
<div>}<br></div><div><br></div>For the above code one cannot be 100% sure i=
f the programmer meant default or meant 1 masquerading as default. But it g=
ives programmer the option of giving default and actual value for middle pa=
rameters. Even if the programmer is reasonable he/she will not be helpless.=
<div>
<br></div><div>Hariharan S<br><div><br></div><div><br></div></div></div><di=
v class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Wed, Aug 27, =
2014 at 1:22 AM, Nevin Liber <span dir=3D"ltr">&lt;<a href=3D"mailto:nevin@=
eviloverlord.com" target=3D"_blank">nevin@eviloverlord.com</a>&gt;</span> w=
rote:<br>
<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">On 26 August 2014 14:30, Ha=
riharan Subramanian <span dir=3D"ltr">&lt;<a href=3D"mailto:tohari@gmail.co=
m" target=3D"_blank">tohari@gmail.com</a>&gt;</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-left-style:solid;p=
adding-left:1ex"><div dir=3D"ltr">During the lifecycle of a software, the d=
efault value of a parameter can change. If the<br>


</div></blockquote><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border=
-left-style:solid;padding-left:1ex">default value of type2 changes then no =
work need to be done. But if the default=C2=A0<br>


value of type1 changes then wherever a1 was used it should be changed.=C2=
=A0</blockquote><div><br></div><div>I strongly disagree with &quot;no work =
need to be done&quot;. =C2=A0Changing a default value is an interface chang=
e. =C2=A0The problem with changing a default parameter is that it is imposs=
ible for the author of the callee to determine if a particular caller is us=
ing the default because it should not be specified vs. is using it because =
they knew what the exactly default value is and not specifying it is a conv=
enient shorthand. =C2=A0I have to visit every caller to see if it is still =
doing what is intended.</div>
<span class=3D"HOEnZb"><font color=3D"#888888">

</font></span></div><span class=3D"HOEnZb"><font color=3D"#888888">-- <br>=
=C2=A0Nevin &quot;:-)&quot; Liber=C2=A0 &lt;mailto:<a href=3D"mailto:nevin@=
eviloverlord.com" target=3D"_blank">nevin@eviloverlord.com</a>&gt;=C2=A0 (8=
47) 691-1404
</font></span></div></div><div class=3D"HOEnZb"><div class=3D"h5">

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to a topic in the Goog=
le Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this topic, visit <a href=3D"https://groups.google.com/=
a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s/unsubscribe" target=3D"_blan=
k">https://groups.google.com/a/isocpp.org/d/topic/std-proposals/4tWQEMqEH8s=
/unsubscribe</a>.<br>

To unsubscribe from this group and all its topics, send an email to <a href=
=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_blank">std-prop=
osals+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>

<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 />

--001a113486d25dceda0501a133ea--

.