Topic: methods templates


Author: Jake Arkinstall <jake.arkinstall@gmail.com>
Date: Sat, 19 Jan 2019 13:56:42 +0000
Raw View
--00000000000009ae87057fd00093
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

A common approach to this is to use a struct to wrap the functions in. I'd
much prefer to be able to wrap a template around a namespace, but that
isn't a popular idea.

In honesty, I'd like something that sits in the middle of the ideas of
structs and namespaces - something used specifically for compile time logic
and type traits. The use of structs used strictly for sfinae logic, for
example, is nothing but a bodge IMO, and I'd like to be able to use a
"using" declaration to access methods in the current scope.

Just my 2=C2=A2.

On Sat, 19 Jan 2019, 13:47 <philippe.ballereau@free.fr wrote:

> In a C ++ class when you have a lot of methods templates with the same
> types, you have lot of redundant information.
> for example :
>
> class Foo
> {
> public :
>
>      template <typename T>
>      void meth1(T t);
>
>      template <typename T>
>      void meth2(T t);
>
>     template <typename T, typename U>
>     void meth3(T t,, U u);
> }:
>
> Could not imagine something like this :
>
> class Foo
> {
> public :
>
>       methods <typename T>
>       {
>          void meth1(T t);
>
>          void meth2(T t);
>
>          template  <typename U>
>         void meth3(T t,, U u);
>     }:
> }:
>
> What do you think about this ?
> Is there a proposal that goes in this direction ?
> Problems with parser (compiler front end , Doxygen =E2=80=A6) ?
>
> Regards,
>
> Philippe Ballereau
>
> --
> You received this message because you are subscribed to the Google Groups
> "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> To view this discussion on the web visit
> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/711b31b3-de8=
f-462a-ac03-780bd2f5e4f4%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/711b31b3-de=
8f-462a-ac03-780bd2f5e4f4%40isocpp.org?utm_medium=3Demail&utm_source=3Dfoot=
er>
> .
>

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/CAC%2B0CCOHKVM9FYQVYtC8mqf3P1%2BmnhykR63YkwrXptL=
TSx%3DcDg%40mail.gmail.com.

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

<div dir=3D"auto">A common approach to this is to use a struct to wrap the =
functions in. I&#39;d much prefer to be able to wrap a template around a na=
mespace, but that isn&#39;t a popular idea.<div dir=3D"auto"><br></div><div=
 dir=3D"auto">In honesty, I&#39;d like something that sits in the middle of=
 the ideas of structs and namespaces - something used specifically for comp=
ile time logic and type traits. The use of structs used strictly for sfinae=
 logic, for example, is nothing but a bodge IMO, and I&#39;d like to be abl=
e to use a &quot;using&quot; declaration to access methods in the current s=
cope.</div><div dir=3D"auto"><br></div><div dir=3D"auto">Just my 2=C2=A2.</=
div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr">On Sat, 19 Jan 20=
19, 13:47  &lt;<a href=3D"mailto:philippe.ballereau@free.fr">philippe.balle=
reau@free.fr</a> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D=
"ltr"><div>In a C ++ class when you have a lot of methods templates with th=
e same types, you have lot of redundant information.</div><div>for example =
:</div><div><br></div><div>class Foo=C2=A0</div><div>{</div><div>public :</=
div><div><br></div><div>=C2=A0 =C2=A0=C2=A0 template &lt;typename T&gt;</di=
v><div>=C2=A0 =C2=A0=C2=A0 void meth1(T t);</div><div><br></div><div><div>=
=C2=A0 =C2=A0=C2=A0 template &lt;typename T&gt;</div><div>=C2=A0 =C2=A0=C2=
=A0 void meth2(T t);</div><b></b><i></i><u></u><sub></sub><sup></sup><strik=
e></strike><br></div><div><div>=C2=A0 =C2=A0 template &lt;typename T, typen=
ame U&gt;</div><div>=C2=A0 =C2=A0 void meth3(T t,, U u);<br></div></div><di=
v>}:</div><div><br></div><div>Could not imagine something like this :</div>=
<div><br></div><div><div>class Foo=C2=A0</div><div>{</div><div>public :</di=
v><div><br></div><div>=C2=A0 =C2=A0 =C2=A0 methods &lt;typename T&gt;=C2=A0=
</div><div>=C2=A0 =C2=A0 =C2=A0 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=
=A0 void meth1(T t);</div><div><br></div><div><div style=3D"background-colo=
r:transparent;border-bottom-color:rgb(34,34,34);border-bottom-style:none;bo=
rder-bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:non=
e;border-left-width:0px;border-right-color:rgb(34,34,34);border-right-style=
:none;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-styl=
e:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:n=
ormal;font-variant:normal;font-weight:400;letter-spacing:normal;margin-bott=
om:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;p=
adding-left:0px;padding-right:0px;padding-top:0px;text-align:left;text-deco=
ration:none;text-indent:0px;text-transform:none;white-space:normal;word-spa=
cing:0px">=C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0 void meth2(T t);</div><b></b><i=
></i><u></u><sub style=3D"border-bottom-color:rgb(34,34,34);border-bottom-s=
tyle:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-le=
ft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);border=
-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bor=
der-top-style:none;border-top-width:0px;margin-bottom:0px;margin-left:0px;m=
argin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-=
right:0px;padding-top:0px"></sub><sup style=3D"border-bottom-color:rgb(34,3=
4,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rg=
b(34,34,34);border-left-style:none;border-left-width:0px;border-right-color=
:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-co=
lor:rgb(34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:=
0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padd=
ing-left:0px;padding-right:0px;padding-top:0px"></sup><strike style=3D"bord=
er-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:=
0px;border-left-color:rgb(34,34,34);border-left-style:none;border-left-widt=
h:0px;border-right-color:rgb(34,34,34);border-right-style:none;border-right=
-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-=
width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px=
;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></s=
trike><br></div><div><div style=3D"background-color:transparent;border-bott=
om-color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;bor=
der-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;b=
order-right-color:rgb(34,34,34);border-right-style:none;border-right-width:=
0px;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0=
px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal=
;font-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;ma=
rgin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-r=
ight:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0=
px;text-transform:none;white-space:normal;word-spacing:0px">=C2=A0 =C2=A0 =
=C2=A0 =C2=A0=C2=A0 template=C2=A0 &lt;typename U&gt;</div><div style=3D"ba=
ckground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-=
style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-l=
eft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);borde=
r-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bo=
rder-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px=
;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:norma=
l;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding=
-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:l=
eft;text-decoration:none;text-indent:0px;text-transform:none;white-space:no=
rmal;word-spacing:0px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 void meth3(T t,, U u);</=
div><div style=3D"background-color:transparent;border-bottom-color:rgb(34,3=
4,34);border-bottom-style:none;border-bottom-width:0px;border-left-color:rg=
b(34,34,34);border-left-style:none;border-left-width:0px;border-right-color=
:rgb(34,34,34);border-right-style:none;border-right-width:0px;border-top-co=
lor:rgb(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,3=
4,34);font-size:13px;font-style:normal;font-variant:normal;font-weight:400;=
letter-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;ma=
rgin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-=
top:0px;text-align:left;text-decoration:none;text-indent:0px;text-transform=
:none;white-space:normal;word-spacing:0px">=C2=A0 =C2=A0 }:</div></div><div=
>}:</div><div><br></div><div>What do you think about this ?</div>Is there a=
 proposal that goes in this direction ?</div><div>Problems with parser (com=
piler front end , Doxygen =E2=80=A6) ?</div><div><br></div><div>Regards,</d=
iv><div><br></div><div>Philippe Ballereau</div></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank" rel=3D"noreferrer">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank" rel=3D"noreferrer">std-proposals@isocpp.org</a>.<br=
>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/711b31b3-de8f-462a-ac03-780bd2f5e4f4%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank" =
rel=3D"noreferrer">https://groups.google.com/a/isocpp.org/d/msgid/std-propo=
sals/711b31b3-de8f-462a-ac03-780bd2f5e4f4%40isocpp.org</a>.<br>
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCOHKVM9FYQVYtC8mqf3P1%2Bmnhyk=
R63YkwrXptLTSx%3DcDg%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoote=
r">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAC%2B0CCOH=
KVM9FYQVYtC8mqf3P1%2BmnhykR63YkwrXptLTSx%3DcDg%40mail.gmail.com</a>.<br />

--00000000000009ae87057fd00093--

.


Author: philippe.ballereau@free.fr
Date: Sat, 19 Jan 2019 05:47:18 -0800 (PST)
Raw View
------=_Part_1077_887510377.1547905638942
Content-Type: multipart/alternative;
 boundary="----=_Part_1078_1023214038.1547905638942"

------=_Part_1078_1023214038.1547905638942
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

In a C ++ class when you have a lot of methods templates with the same=20
types, you have lot of redundant information.
for example :

class Foo=20
{
public :

     template <typename T>
     void meth1(T t);

     template <typename T>
     void meth2(T t);

    template <typename T, typename U>
    void meth3(T t,, U u);
}:

Could not imagine something like this :

class Foo=20
{
public :

      methods <typename T>=20
      {
         void meth1(T t);

         void meth2(T t);

         template  <typename U>
        void meth3(T t,, U u);
    }:
}:

What do you think about this ?
Is there a proposal that goes in this direction ?
Problems with parser (compiler front end , Doxygen =E2=80=A6) ?

Regards,

Philippe Ballereau

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/711b31b3-de8f-462a-ac03-780bd2f5e4f4%40isocpp.or=
g.

------=_Part_1078_1023214038.1547905638942
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>In a C ++ class when you have a lot of methods templa=
tes with the same types, you have lot of redundant information.</div><div>f=
or example :</div><div><br></div><div>class Foo=C2=A0</div><div>{</div><div=
>public :</div><div><br></div><div>=C2=A0 =C2=A0=C2=A0 template &lt;typenam=
e T&gt;</div><div>=C2=A0 =C2=A0=C2=A0 void meth1(T t);</div><div><br></div>=
<div><div style=3D"background-color: transparent; border-bottom-color: rgb(=
34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-im=
age-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bord=
er-image-source: none; border-image-width: 1; border-left-color: rgb(34, 34=
, 34); border-left-style: none; border-left-width: 0px; border-right-color:=
 rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; border=
-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px;=
 color: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot;H=
elvetica&amp;quot;,sans-serif; font-size: 13px; font-style: normal; font-va=
riant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px=
; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding=
-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text=
-align: left; text-decoration: none; text-indent: 0px; text-transform: none=
; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">=
=C2=A0 =C2=A0=C2=A0 template &lt;typename T&gt;</div><div style=3D"backgrou=
nd-color: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-=
style: none; border-bottom-width: 0px; border-image-outset: 0; border-image=
-repeat: stretch; border-image-slice: 100%; border-image-source: none; bord=
er-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: n=
one; border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-ri=
ght-style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34)=
; border-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); fo=
nt-family: &amp;quot;Arial&amp;quot;,&amp;quot;Helvetica&amp;quot;,sans-ser=
if; font-size: 13px; font-style: normal; font-variant: normal; font-weight:=
 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-=
right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left:=
 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decorati=
on: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width=
: 0px; white-space: normal; word-spacing: 0px;">=C2=A0 =C2=A0=C2=A0 void me=
th2(T t);</div><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike>=
<br></div><div><div style=3D"background-color: transparent; border-bottom-c=
olor: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px;=
 border-image-outset: 0; border-image-repeat: stretch; border-image-slice: =
100%; border-image-source: none; border-image-width: 1; border-left-color: =
rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-ri=
ght-color: rgb(34, 34, 34); border-right-style: none; border-right-width: 0=
px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-w=
idth: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&=
amp;quot;Helvetica&amp;quot;,sans-serif; font-size: 13px; font-style: norma=
l; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-b=
ottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: =
2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top:=
 0px; text-align: left; text-decoration: none; text-indent: 0px; text-trans=
form: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spaci=
ng: 0px;">=C2=A0 =C2=A0 template &lt;typename T, typename U&gt;</div><div s=
tyle=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34)=
; border-bottom-style: none; border-bottom-width: 0px; border-image-outset:=
 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-so=
urce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bord=
er-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34=
, 34); border-right-style: none; border-right-width: 0px; border-top-color:=
 rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb=
(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot;Helvetica&am=
p;quot;,sans-serif; font-size: 13px; font-style: normal; font-variant: norm=
al; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-le=
ft: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0p=
x; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: lef=
t; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-t=
ext-stroke-width: 0px; white-space: normal; word-spacing: 0px;">=C2=A0 =C2=
=A0 void meth3(T t,, U u);<br></div></div><div>}:</div><div><br></div><div>=
Could not imagine something like this :</div><div><br></div><div><div style=
=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot;Helvetica&amp;qu=
ot;,sans-serif; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: =
0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; p=
adding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; t=
ext-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-=
stroke-width: 0px; white-space: normal; word-spacing: 0px;">class Foo=C2=A0=
</div><div style=3D"background-color: transparent; border-bottom-color: rgb=
(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-i=
mage-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bor=
der-image-source: none; border-image-width: 1; border-left-color: rgb(34, 3=
4, 34); border-left-style: none; border-left-width: 0px; border-right-color=
: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; borde=
r-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px=
; color: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot;=
Helvetica&amp;quot;,sans-serif; font-size: 13px; font-style: normal; font-v=
ariant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0p=
x; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; paddin=
g-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; tex=
t-align: left; text-decoration: none; text-indent: 0px; text-transform: non=
e; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"=
>{</div><div style=3D"background-color: transparent; border-bottom-color: r=
gb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border=
-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; b=
order-image-source: none; border-image-width: 1; border-left-color: rgb(34,=
 34, 34); border-left-style: none; border-left-width: 0px; border-right-col=
or: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bor=
der-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0=
px; color: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quo=
t;Helvetica&amp;quot;,sans-serif; font-size: 13px; font-style: normal; font=
-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: =
0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padd=
ing-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; t=
ext-align: left; text-decoration: none; text-indent: 0px; text-transform: n=
one; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px=
;">public :</div><div style=3D"background-color: transparent; border-bottom=
-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0p=
x; border-image-outset: 0; border-image-repeat: stretch; border-image-slice=
: 100%; border-image-source: none; border-image-width: 1; border-left-color=
: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-=
right-color: rgb(34, 34, 34); border-right-style: none; border-right-width:=
 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top=
-width: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;=
,&amp;quot;Helvetica&amp;quot;,sans-serif; font-size: 13px; font-style: nor=
mal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin=
-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans=
: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-to=
p: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-tra=
nsform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spa=
cing: 0px;"><br></div><div style=3D"background-color: transparent; border-b=
ottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-widt=
h: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image-=
slice: 100%; border-image-source: none; border-image-width: 1; border-left-=
color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; bo=
rder-right-color: rgb(34, 34, 34); border-right-style: none; border-right-w=
idth: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; borde=
r-top-width: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;=
quot;,&amp;quot;Helvetica&amp;quot;,sans-serif; font-size: 13px; font-style=
: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; m=
argin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; or=
phans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; paddi=
ng-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; tex=
t-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; wor=
d-spacing: 0px;">=C2=A0 =C2=A0 =C2=A0 methods &lt;typename T&gt;=C2=A0</div=
><div style=3D"background-color: transparent; border-bottom-color: rgb(34, =
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-=
outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-i=
mage-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34=
); border-left-style: none; border-left-width: 0px; border-right-color: rgb=
(34, 34, 34); border-right-style: none; border-right-width: 0px; border-top=
-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; col=
or: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot;Helve=
tica&amp;quot;,sans-serif; font-size: 13px; font-style: normal; font-varian=
t: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; ma=
rgin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-ali=
gn: left; text-decoration: none; text-indent: 0px; text-transform: none; -w=
ebkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">=C2=
=A0 =C2=A0 =C2=A0 {</div><div style=3D"background-color: transparent; borde=
r-bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-w=
idth: 0px; border-image-outset: 0; border-image-repeat: stretch; border-ima=
ge-slice: 100%; border-image-source: none; border-image-width: 1; border-le=
ft-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px;=
 border-right-color: rgb(34, 34, 34); border-right-style: none; border-righ=
t-width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bo=
rder-top-width: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;Arial&a=
mp;quot;,&amp;quot;Helvetica&amp;quot;,sans-serif; font-size: 13px; font-st=
yle: normal; font-variant: normal; font-weight: 400; letter-spacing: normal=
; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;=
 orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; pa=
dding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; =
text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; =
word-spacing: 0px;">=C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0 void meth1(T t);</div=
><div style=3D"background-color: transparent; border-bottom-color: rgb(34, =
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-=
outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-i=
mage-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34=
); border-left-style: none; border-left-width: 0px; border-right-color: rgb=
(34, 34, 34); border-right-style: none; border-right-width: 0px; border-top=
-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; col=
or: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot;Helve=
tica&amp;quot;,sans-serif; font-size: 13px; font-style: normal; font-varian=
t: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; ma=
rgin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bot=
tom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-ali=
gn: left; text-decoration: none; text-indent: 0px; text-transform: none; -w=
ebkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"><br>=
</div><div style=3D"background-color: transparent; border-bottom-color: rgb=
(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-i=
mage-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bor=
der-image-source: none; border-image-width: 1; border-left-color: rgb(34, 3=
4, 34); border-left-style: none; border-left-width: 0px; border-right-color=
: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; borde=
r-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px=
; color: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot;=
Helvetica&amp;quot;,sans-serif; font-size: 13px; font-style: normal; font-v=
ariant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0p=
x; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; paddin=
g-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; tex=
t-align: left; text-decoration: none; text-indent: 0px; text-transform: non=
e; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"=
><div style=3D"background-color: transparent; border-bottom-color: rgb(34, =
34, 34); border-bottom-style: none; border-bottom-width: 0px; border-image-=
outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-i=
mage-source: none; border-image-width: 1; border-left-color: rgb(34, 34, 34=
); border-left-style: none; border-left-width: 0px; border-right-color: rgb=
(34, 34, 34); border-right-style: none; border-right-width: 0px; border-top=
-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; col=
or: rgb(34, 34, 34); font-size: 13px; font-style: normal; font-variant: nor=
mal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-l=
eft: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0=
px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: le=
ft; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-=
text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">=C2=A0 =C2=
=A0 =C2=A0 =C2=A0=C2=A0 void meth2(T t);</div><b style=3D"background-attach=
ment: scroll; background-clip: border-box; background-color: transparent; b=
ackground-image: none; background-origin: padding-box; background-position-=
x: 0%; background-position-y: 0%; background-repeat: repeat; background-siz=
e: auto; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; b=
order-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stret=
ch; border-image-slice: 100%; border-image-source: none; border-image-width=
: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-le=
ft-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: non=
e; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-s=
tyle: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &am=
p;quot;Arial&amp;quot;,&amp;quot;Helvetica&amp;quot;,sans-serif; font-size:=
 13px; height: auto; margin-bottom: 0px; margin-left: 0px; margin-right: 0p=
x; margin-top: 0px; min-width: 0px; overflow: visible; overflow-x: visible;=
 overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding-right=
: 0px; padding-top: 0px;"></b><i style=3D"background-attachment: scroll; ba=
ckground-clip: border-box; background-color: transparent; background-image:=
 none; background-origin: padding-box; background-position-x: 0%; backgroun=
d-position-y: 0%; background-repeat: repeat; background-size: auto; border-=
bottom-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-wid=
th: 0px; border-image-outset: 0; border-image-repeat: stretch; border-image=
-slice: 100%; border-image-source: none; border-image-width: 1; border-left=
-color: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; b=
order-right-color: rgb(34, 34, 34); border-right-style: none; border-right-=
width: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; bord=
er-top-width: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp=
;quot;,&amp;quot;Helvetica&amp;quot;,sans-serif; font-size: 13px; height: a=
uto; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0=
px; min-width: 0px; overflow: visible; overflow-x: visible; overflow-y: vis=
ible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-t=
op: 0px;"></i><u style=3D"background-attachment: scroll; background-clip: b=
order-box; background-color: transparent; background-image: none; backgroun=
d-origin: padding-box; background-position-x: 0%; background-position-y: 0%=
; background-repeat: repeat; background-size: auto; border-bottom-color: rg=
b(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px; border-=
image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; bo=
rder-image-source: none; border-image-width: 1; border-left-color: rgb(34, =
34, 34); border-left-style: none; border-left-width: 0px; border-right-colo=
r: rgb(34, 34, 34); border-right-style: none; border-right-width: 0px; bord=
er-top-color: rgb(34, 34, 34); border-top-style: none; border-top-width: 0p=
x; color: rgb(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot=
;Helvetica&amp;quot;,sans-serif; font-size: 13px; height: auto; margin-bott=
om: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0=
px; overflow: visible; overflow-x: visible; overflow-y: visible; padding-bo=
ttom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></u><s=
ub style=3D"border-bottom-color: rgb(34, 34, 34); border-bottom-style: none=
; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: st=
retch; border-image-slice: 100%; border-image-source: none; border-image-wi=
dth: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border=
-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: =
none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-to=
p-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px;=
 margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px=
; padding-right: 0px; padding-top: 0px;"></sub><sup style=3D"border-bottom-=
color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: 0px=
; border-image-outset: 0; border-image-repeat: stretch; border-image-slice:=
 100%; border-image-source: none; border-image-width: 1; border-left-color:=
 rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; border-r=
ight-color: rgb(34, 34, 34); border-right-style: none; border-right-width: =
0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-top-=
width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin=
-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padd=
ing-top: 0px;"></sup><strike style=3D"border-bottom-color: rgb(34, 34, 34);=
 border-bottom-style: none; border-bottom-width: 0px; border-image-outset: =
0; border-image-repeat: stretch; border-image-slice: 100%; border-image-sou=
rce: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); borde=
r-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 34,=
 34); border-right-style: none; border-right-width: 0px; border-top-color: =
rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; margin-bott=
om: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bott=
om: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"></strike=
><br style=3D"background-attachment: scroll; background-clip: border-box; b=
ackground-color: transparent; background-image: none; background-origin: pa=
dding-box; background-position-x: 0%; background-position-y: 0%; background=
-repeat: repeat; background-size: auto; border-bottom-color: rgb(34, 34, 34=
); border-bottom-style: none; border-bottom-width: 0px; border-image-outset=
: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-s=
ource: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); bor=
der-left-style: none; border-left-width: 0px; border-right-color: rgb(34, 3=
4, 34); border-right-style: none; border-right-width: 0px; border-top-color=
: rgb(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rg=
b(34, 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot;Helvetica&a=
mp;quot;,sans-serif; font-size: 13px; height: auto; margin-bottom: 0px; mar=
gin-left: 0px; margin-right: 0px; margin-top: 0px; min-width: 0px; overflow=
: visible; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; p=
adding-left: 0px; padding-right: 0px; padding-top: 0px;"></div><div style=
=3D"background-color: transparent; border-bottom-color: rgb(34, 34, 34); bo=
rder-bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; =
border-image-repeat: stretch; border-image-slice: 100%; border-image-source=
: none; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-l=
eft-style: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34=
); border-right-style: none; border-right-width: 0px; border-top-color: rgb=
(34, 34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34,=
 34, 34); font-family: &amp;quot;Arial&amp;quot;,&amp;quot;Helvetica&amp;qu=
ot;,sans-serif; font-size: 13px; font-style: normal; font-variant: normal; =
font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: =
0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; p=
adding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; t=
ext-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-=
stroke-width: 0px; white-space: normal; word-spacing: 0px;"><div style=3D"b=
ackground-color: transparent; border-bottom-color: rgb(34, 34, 34); border-=
bottom-style: none; border-bottom-width: 0px; border-image-outset: 0; borde=
r-image-repeat: stretch; border-image-slice: 100%; border-image-source: non=
e; border-image-width: 1; border-left-color: rgb(34, 34, 34); border-left-s=
tyle: none; border-left-width: 0px; border-right-color: rgb(34, 34, 34); bo=
rder-right-style: none; border-right-width: 0px; border-top-color: rgb(34, =
34, 34); border-top-style: none; border-top-width: 0px; color: rgb(34, 34, =
34); font-size: 13px; font-style: normal; font-variant: normal; font-weight=
: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin=
-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left=
: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decorat=
ion: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-widt=
h: 0px; white-space: normal; word-spacing: 0px;">=C2=A0 =C2=A0 =C2=A0 =C2=
=A0=C2=A0 template=C2=A0 &lt;typename U&gt;</div><div style=3D"background-c=
olor: transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-styl=
e: none; border-bottom-width: 0px; border-image-outset: 0; border-image-rep=
eat: stretch; border-image-slice: 100%; border-image-source: none; border-i=
mage-width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none;=
 border-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-=
style: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); bo=
rder-top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-s=
ize: 13px; font-style: normal; font-variant: normal; font-weight: 400; lett=
er-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px=
; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padd=
ing-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; =
text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; whi=
te-space: normal; word-spacing: 0px;">=C2=A0 =C2=A0 =C2=A0 =C2=A0 void meth=
3(T t,, U u);</div><div style=3D"background-color: transparent; border-bott=
om-color: rgb(34, 34, 34); border-bottom-style: none; border-bottom-width: =
0px; border-image-outset: 0; border-image-repeat: stretch; border-image-sli=
ce: 100%; border-image-source: none; border-image-width: 1; border-left-col=
or: rgb(34, 34, 34); border-left-style: none; border-left-width: 0px; borde=
r-right-color: rgb(34, 34, 34); border-right-style: none; border-right-widt=
h: 0px; border-top-color: rgb(34, 34, 34); border-top-style: none; border-t=
op-width: 0px; color: rgb(34, 34, 34); font-size: 13px; font-style: normal;=
 font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bot=
tom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2;=
 padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0=
px; text-align: left; text-decoration: none; text-indent: 0px; text-transfo=
rm: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing=
: 0px;">=C2=A0 =C2=A0 }:</div></div><div style=3D"background-color: transpa=
rent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; bord=
er-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stretch;=
 border-image-slice: 100%; border-image-source: none; border-image-width: 1=
; border-left-color: rgb(34, 34, 34); border-left-style: none; border-left-=
width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: none; =
border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-styl=
e: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &amp;q=
uot;Arial&amp;quot;,&amp;quot;Helvetica&amp;quot;,sans-serif; font-size: 13=
px; font-style: normal; font-variant: normal; font-weight: 400; letter-spac=
ing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margi=
n-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-rig=
ht: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-in=
dent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-spac=
e: normal; word-spacing: 0px;">}:</div><div style=3D"background-color: tran=
sparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: none; b=
order-bottom-width: 0px; border-image-outset: 0; border-image-repeat: stret=
ch; border-image-slice: 100%; border-image-source: none; border-image-width=
: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; border-le=
ft-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style: non=
e; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-top-s=
tyle: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family: &am=
p;quot;Arial&amp;quot;,&amp;quot;Helvetica&amp;quot;,sans-serif; font-size:=
 13px; font-style: normal; font-variant: normal; font-weight: 400; letter-s=
pacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; ma=
rgin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-=
right: 0px; padding-top: 0px; text-align: left; text-decoration: none; text=
-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-s=
pace: normal; word-spacing: 0px;"><br></div><div style=3D"background-color:=
 transparent; border-bottom-color: rgb(34, 34, 34); border-bottom-style: no=
ne; border-bottom-width: 0px; border-image-outset: 0; border-image-repeat: =
stretch; border-image-slice: 100%; border-image-source: none; border-image-=
width: 1; border-left-color: rgb(34, 34, 34); border-left-style: none; bord=
er-left-width: 0px; border-right-color: rgb(34, 34, 34); border-right-style=
: none; border-right-width: 0px; border-top-color: rgb(34, 34, 34); border-=
top-style: none; border-top-width: 0px; color: rgb(34, 34, 34); font-family=
: &amp;quot;Arial&amp;quot;,&amp;quot;Helvetica&amp;quot;,sans-serif; font-=
size: 13px; font-style: normal; font-variant: normal; font-weight: 400; let=
ter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0p=
x; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; pad=
ding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none;=
 text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; wh=
ite-space: normal; word-spacing: 0px;">What do you think about this ?</div>=
Is there a proposal that goes in this direction ?</div><div>Problems with p=
arser (compiler front end , Doxygen =E2=80=A6) ?</div><div><br></div><div>R=
egards,</div><div><br></div><div>Philippe Ballereau</div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/711b31b3-de8f-462a-ac03-780bd2f5e4f4%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/711b31b3-de8f-462a-ac03-780bd2f5e4f4=
%40isocpp.org</a>.<br />

------=_Part_1078_1023214038.1547905638942--

------=_Part_1077_887510377.1547905638942--

.


Author: Alberto Barbati <albertobarbati@gmail.com>
Date: Sun, 20 Jan 2019 05:42:44 -0800 (PST)
Raw View
------=_Part_1300_1268538970.1547991764839
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Please consider thai in C++20 you will be able to write

class Foo=20
{
public :
     void meth1(auto t);
     void meth2(auto t);
     void meth3(auto t, auto u);
}:

If the only rationale of your proposal is to reduce repetitions, I believe =
it=E2=80=99s not worth the effort of standarding a completely new syntax, e=
specially since we already have an alternative, which achieves the same goa=
l in a more convenient way.

Just my 2 eurocent.

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/7706301a-cfc7-465b-8139-dad659ce7037%40isocpp.or=
g.

------=_Part_1300_1268538970.1547991764839--

.


Author: philippe.ballereau@free.fr
Date: Sun, 20 Jan 2019 09:17:04 -0800 (PST)
Raw View
------=_Part_1572_1987225210.1548004624762
Content-Type: multipart/alternative;
 boundary="----=_Part_1573_641320824.1548004624762"

------=_Part_1573_641320824.1548004624762
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable



Le samedi 19 janvier 2019 14:47:19 UTC+1, philippe....@free.fr a =C3=A9crit=
 :
>
> In a C ++ class when you have a lot of methods templates with the same=20
> types, you have lot of redundant information.
> for example :
>
> class Foo=20
> {
> public :
>
>      template <typename T>
>      void meth1(T t);
>
>      template <typename T>
>      void meth2(T t);
>
>     template <typename T, typename U>
>     void meth3(T t,, U u);
> }:
>
> Could not imagine something like this :
>
> class Foo=20
> {
> public :
>
>       methods <typename T>=20
>       {
>          void meth1(T t);
>
>          void meth2(T t);
>
>          template  <typename U>
>         void meth3(T t,, U u);
>     }:
> }:
>
> What do you think about this ?
> Is there a proposal that goes in this direction ?
> Problems with parser (compiler front end , Doxygen =E2=80=A6) ?
>
> Regards,
>
> Philippe Ballereau
>

Yes this will be a solution,
 but the syntax template  is more rich than the keyword auto.
It is also why it seems to me that the template syntax will return for=20
lambdas.

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/dc35ab69-d2a6-4e03-a776-75d6f94a08d4%40isocpp.or=
g.

------=_Part_1573_641320824.1548004624762
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>Le samedi 19 janvier 2019 14:47:19 UTC+1, philippe=
.....@free.fr a =C3=A9crit=C2=A0:<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>In a C ++ class when you have a lot of methods temp=
lates with the same types, you have lot of redundant information.</div><div=
>for example :</div><div><br></div><div>class Foo=C2=A0</div><div>{</div><d=
iv>public :</div><div><br></div><div>=C2=A0 =C2=A0=C2=A0 template &lt;typen=
ame T&gt;</div><div>=C2=A0 =C2=A0=C2=A0 void meth1(T t);</div><div><br></di=
v><div><div>=C2=A0 =C2=A0=C2=A0 template &lt;typename T&gt;</div><div>=C2=
=A0 =C2=A0=C2=A0 void meth2(T t);</div><b></b><i></i><u></u><sub></sub><sup=
></sup><strike></strike><br></div><div><div>=C2=A0 =C2=A0 template &lt;type=
name T, typename U&gt;</div><div>=C2=A0 =C2=A0 void meth3(T t,, U u);<br></=
div></div><div>}:</div><div><br></div><div>Could not imagine something like=
 this :</div><div><br></div><div><div>class Foo=C2=A0</div><div>{</div><div=
>public :</div><div><br></div><div>=C2=A0 =C2=A0 =C2=A0 methods &lt;typenam=
e T&gt;=C2=A0</div><div>=C2=A0 =C2=A0 =C2=A0 {</div><div>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0=C2=A0 void meth1(T t);</div><div><br></div><div><div style=3D"ba=
ckground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-=
style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-l=
eft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);borde=
r-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bo=
rder-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px=
;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:norma=
l;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding=
-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:l=
eft;text-decoration:none;text-indent:0px;text-transform:none;white-space:no=
rmal;word-spacing:0px">=C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0 void meth2(T t);</=
div><b></b><i></i><u></u><sub style=3D"border-bottom-color:rgb(34,34,34);bo=
rder-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,=
34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,=
34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(=
34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;marg=
in-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left=
:0px;padding-right:0px;padding-top:0px"></sub><sup style=3D"border-bottom-c=
olor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-=
left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;borde=
r-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;=
border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;m=
argin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bo=
ttom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></sup><strike =
style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-=
bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bor=
der-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none=
;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:non=
e;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;m=
argin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding=
-top:0px"></strike><br></div><div><div style=3D"background-color:transparen=
t;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-=
width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-lef=
t-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border=
-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;borde=
r-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-v=
ariant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margi=
n-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:=
0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:none;=
text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0 template=C2=A0 &lt;typename U&gt;</div><d=
iv style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);=
font-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter=
-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-t=
op:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0p=
x;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;=
white-space:normal;word-spacing:0px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 void meth3=
(T t,, U u);</div><div style=3D"background-color:transparent;border-bottom-=
color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border=
-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bord=
er-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px=
;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;=
color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;fo=
nt-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margi=
n-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-righ=
t:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;=
text-transform:none;white-space:normal;word-spacing:0px">=C2=A0 =C2=A0 }:</=
div></div><div>}:</div><div><br></div><div>What do you think about this ?</=
div>Is there a proposal that goes in this direction ?</div><div>Problems wi=
th parser (compiler front end , Doxygen =E2=80=A6) ?</div><div><br></div><d=
iv>Regards,</div><div><br></div><div>Philippe Ballereau</div></div></blockq=
uote><div><br></div><div>Yes this will be a solution,</div><div>=C2=A0but t=
he syntax template=C2=A0 is more rich than the keyword auto.</div><div>It i=
s also why it seems to me that the template syntax will return for lambdas.=
</div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/dc35ab69-d2a6-4e03-a776-75d6f94a08d4%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/dc35ab69-d2a6-4e03-a776-75d6f94a08d4=
%40isocpp.org</a>.<br />

------=_Part_1573_641320824.1548004624762--

------=_Part_1572_1987225210.1548004624762--

.


Author: Nicol Bolas <jmckesson@gmail.com>
Date: Sun, 20 Jan 2019 12:45:29 -0800 (PST)
Raw View
------=_Part_1715_1056980658.1548017129213
Content-Type: multipart/alternative;
 boundary="----=_Part_1716_887596855.1548017129213"

------=_Part_1716_887596855.1548017129213
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Saturday, January 19, 2019 at 8:56:56 AM UTC-5, Jake Arkinstall wrote:
>
> A common approach to this is to use a struct to wrap the functions in. I'=
d=20
> much prefer to be able to wrap a template around a namespace, but that=20
> isn't a popular idea.
>
> In honesty, I'd like something that sits in the middle of the ideas of=20
> structs and namespaces - something used specifically for compile time log=
ic=20
> and type traits. The use of structs used strictly for sfinae logic, for=
=20
> example, is nothing but a bodge IMO, and I'd like to be able to use a=20
> "using" declaration to access methods in the current scope.
>
> Just my 2=C2=A2.
>

Another thing to consider: there is already a problem when users define=20
template functions outside of the class definition, where the template=20
parameters to the class have to be constantly re-specified. So there had=20
been some talk about having some way to scope a set of=20
declarations/definitions in some syntax that basically says that all of=20
them live within the scope of something.

What's being discussed here is similar, only they don't live within the=20
scope of a name so much as the scope of a template header. So a more=20
generalized approach might be more appropriate.

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/bc5c5868-92b1-445d-af98-4d6d5f216de0%40isocpp.or=
g.

------=_Part_1716_887596855.1548017129213
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Saturday, January 19, 2019 at 8:56:56 AM UTC-5, Jake Ar=
kinstall wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-=
left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"aut=
o">A common approach to this is to use a struct to wrap the functions in. I=
&#39;d much prefer to be able to wrap a template around a namespace, but th=
at isn&#39;t a popular idea.<div dir=3D"auto"><br></div><div dir=3D"auto">I=
n honesty, I&#39;d like something that sits in the middle of the ideas of s=
tructs and namespaces - something used specifically for compile time logic =
and type traits. The use of structs used strictly for sfinae logic, for exa=
mple, is nothing but a bodge IMO, and I&#39;d like to be able to use a &quo=
t;using&quot; declaration to access methods in the current scope.</div><div=
 dir=3D"auto"><br></div><div dir=3D"auto">Just my 2=C2=A2.</div></div></blo=
ckquote><div><br></div><div>Another thing to consider: there is already a p=
roblem when users define template functions outside of the class definition=
, where the template parameters to the class have to be constantly re-speci=
fied. So there had been some talk about having some way to scope a set of d=
eclarations/definitions in some syntax that basically says that all of them=
 live within the scope of something.</div><div><br></div><div>What&#39;s be=
ing discussed here is similar, only they don&#39;t live within the scope of=
 a name so much as the scope of a template header. So a more generalized ap=
proach might be more appropriate.<br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/bc5c5868-92b1-445d-af98-4d6d5f216de0%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/bc5c5868-92b1-445d-af98-4d6d5f216de0=
%40isocpp.org</a>.<br />

------=_Part_1716_887596855.1548017129213--

------=_Part_1715_1056980658.1548017129213--

.


Author: Alberto Barbati <albertobarbati@gmail.com>
Date: Mon, 21 Jan 2019 05:43:34 -0800 (PST)
Raw View
------=_Part_1712_378521414.1548078214300
Content-Type: multipart/alternative;
 boundary="----=_Part_1713_1526828346.1548078214300"

------=_Part_1713_1526828346.1548078214300
Content-Type: text/plain; charset="UTF-8"

Il giorno domenica 20 gennaio 2019 18:17:04 UTC+1, philippe....@free.fr ha
scritto:
>
>
> It is also why it seems to me that the template syntax will return for
> lambdas.
>

It's true that C++2a will introduce a new template syntax for lambda
expressions, it's

[]<class T>(T t) { /*...*/ }

However, lambda expressions are the ones the benefit the most from the
"concise template" syntax with auto (which is essentially the C++17
polymorphic lambda syntax), so I don't expect the "full template" syntax to
be used that often in practice.

--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/12f9683e-9aa1-4161-9c74-e69eb9320df5%40isocpp.org.

------=_Part_1713_1526828346.1548078214300
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Il giorno domenica 20 gennaio 2019 18:17:04 UTC+1, philipp=
e....@free.fr ha scritto:<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"><br><div>It is also why it seems to me that the template syntax=
 will return for lambdas.</div></div></blockquote><div><br></div><div>It&#3=
9;s true that C++2a will introduce a new template syntax for lambda express=
ions, it&#39;s <br></div><div><br></div><div><div style=3D"background-color=
: rgb(250, 250, 250); border-color: rgb(187, 187, 187); border-style: solid=
; border-width: 1px; overflow-wrap: break-word;" class=3D"prettyprint"><cod=
e class=3D"prettyprint"><div class=3D"subprettyprint"><span style=3D"color:=
 #660;" class=3D"styled-by-prettify">[]&lt;</span><span style=3D"color: #00=
8;" class=3D"styled-by-prettify">class</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify"> T</span><span style=3D"color: #660;" class=3D"=
styled-by-prettify">&gt;(</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify">T t</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">)</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> =
</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: #800;" class=3D"styled-by-prettify">/*...*/</span><span style=3D=
"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #=
660;" class=3D"styled-by-prettify">}</span></div></code></div><br>However, =
lambda expressions are the ones the benefit the most from the &quot;concise=
 template&quot; syntax with auto (which is essentially the C++17 polymorphi=
c lambda syntax), so I don&#39;t expect the &quot;full template&quot; synta=
x to be used that often in practice.<br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/12f9683e-9aa1-4161-9c74-e69eb9320df5%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/12f9683e-9aa1-4161-9c74-e69eb9320df5=
%40isocpp.org</a>.<br />

------=_Part_1713_1526828346.1548078214300--

------=_Part_1712_378521414.1548078214300--

.


Author: philippe.ballereau@free.fr
Date: Mon, 21 Jan 2019 10:17:28 -0800 (PST)
Raw View
------=_Part_2012_100854245.1548094648300
Content-Type: multipart/alternative;
 boundary="----=_Part_2013_135483318.1548094648301"

------=_Part_2013_135483318.1548094648301
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable



Le samedi 19 janvier 2019 14:47:19 UTC+1, philippe....@free.fr a =C3=A9crit=
 :
>
> In a C ++ class when you have a lot of methods templates with the same=20
> types, you have lot of redundant information.
> for example :
>
> class Foo=20
> {
> public :
>
>      template <typename T>
>      void meth1(T t);
>
>      template <typename T>
>      void meth2(T t);
>
>     template <typename T, typename U>
>     void meth3(T t,, U u);
> }:
>
> Could not imagine something like this :
>
> class Foo=20
> {
> public :
>
>       methods <typename T>=20
>       {
>          void meth1(T t);
>
>          void meth2(T t);
>
>          template  <typename U>
>         void meth3(T t,, U u);
>     }:
> }:
>
> What do you think about this ?
> Is there a proposal that goes in this direction ?
> Problems with parser (compiler front end , Doxygen =E2=80=A6) ?
>
> Regards,
>
> Philippe Ballereau
>
=20
Indeed, there is the same problem with template functions outside classes.=
=20
A more general solution would be more appropriate.
=20


=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.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/d6d86f52-cf86-4ff1-8074-32a7a8ab668e%40isocpp.or=
g.

------=_Part_2013_135483318.1548094648301
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br>Le samedi 19 janvier 2019 14:47:19 UTC+1, philippe=
.....@free.fr a =C3=A9crit=C2=A0:<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>In a C ++ class when you have a lot of methods temp=
lates with the same types, you have lot of redundant information.</div><div=
>for example :</div><div><br></div><div>class Foo=C2=A0</div><div>{</div><d=
iv>public :</div><div><br></div><div>=C2=A0 =C2=A0=C2=A0 template &lt;typen=
ame T&gt;</div><div>=C2=A0 =C2=A0=C2=A0 void meth1(T t);</div><div><br></di=
v><div><div>=C2=A0 =C2=A0=C2=A0 template &lt;typename T&gt;</div><div>=C2=
=A0 =C2=A0=C2=A0 void meth2(T t);</div><b></b><i></i><u></u><sub></sub><sup=
></sup><strike></strike><br></div><div><div>=C2=A0 =C2=A0 template &lt;type=
name T, typename U&gt;</div><div>=C2=A0 =C2=A0 void meth3(T t,, U u);<br></=
div></div><div>}:</div><div><br></div><div>Could not imagine something like=
 this :</div><div><br></div><div><div>class Foo=C2=A0</div><div>{</div><div=
>public :</div><div><br></div><div>=C2=A0 =C2=A0 =C2=A0 methods &lt;typenam=
e T&gt;=C2=A0</div><div>=C2=A0 =C2=A0 =C2=A0 {</div><div>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0=C2=A0 void meth1(T t);</div><div><br></div><div><div style=3D"ba=
ckground-color:transparent;border-bottom-color:rgb(34,34,34);border-bottom-=
style:none;border-bottom-width:0px;border-left-color:rgb(34,34,34);border-l=
eft-style:none;border-left-width:0px;border-right-color:rgb(34,34,34);borde=
r-right-style:none;border-right-width:0px;border-top-color:rgb(34,34,34);bo=
rder-top-style:none;border-top-width:0px;color:rgb(34,34,34);font-size:13px=
;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:norma=
l;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding=
-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-align:l=
eft;text-decoration:none;text-indent:0px;text-transform:none;white-space:no=
rmal;word-spacing:0px">=C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0 void meth2(T t);</=
div><b></b><i></i><u></u><sub style=3D"border-bottom-color:rgb(34,34,34);bo=
rder-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,34,=
34);border-left-style:none;border-left-width:0px;border-right-color:rgb(34,=
34,34);border-right-style:none;border-right-width:0px;border-top-color:rgb(=
34,34,34);border-top-style:none;border-top-width:0px;margin-bottom:0px;marg=
in-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left=
:0px;padding-right:0px;padding-top:0px"></sub><sup style=3D"border-bottom-c=
olor:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border-=
left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;borde=
r-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px;=
border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;m=
argin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bo=
ttom:0px;padding-left:0px;padding-right:0px;padding-top:0px"></sup><strike =
style=3D"border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-=
bottom-width:0px;border-left-color:rgb(34,34,34);border-left-style:none;bor=
der-left-width:0px;border-right-color:rgb(34,34,34);border-right-style:none=
;border-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:non=
e;border-top-width:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;m=
argin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding=
-top:0px"></strike><br></div><div><div style=3D"background-color:transparen=
t;border-bottom-color:rgb(34,34,34);border-bottom-style:none;border-bottom-=
width:0px;border-left-color:rgb(34,34,34);border-left-style:none;border-lef=
t-width:0px;border-right-color:rgb(34,34,34);border-right-style:none;border=
-right-width:0px;border-top-color:rgb(34,34,34);border-top-style:none;borde=
r-top-width:0px;color:rgb(34,34,34);font-size:13px;font-style:normal;font-v=
ariant:normal;font-weight:400;letter-spacing:normal;margin-bottom:0px;margi=
n-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:=
0px;padding-right:0px;padding-top:0px;text-align:left;text-decoration:none;=
text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0 template=C2=A0 &lt;typename U&gt;</div><d=
iv style=3D"background-color:transparent;border-bottom-color:rgb(34,34,34);=
border-bottom-style:none;border-bottom-width:0px;border-left-color:rgb(34,3=
4,34);border-left-style:none;border-left-width:0px;border-right-color:rgb(3=
4,34,34);border-right-style:none;border-right-width:0px;border-top-color:rg=
b(34,34,34);border-top-style:none;border-top-width:0px;color:rgb(34,34,34);=
font-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter=
-spacing:normal;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-t=
op:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0p=
x;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;=
white-space:normal;word-spacing:0px">=C2=A0 =C2=A0 =C2=A0 =C2=A0 void meth3=
(T t,, U u);</div><div style=3D"background-color:transparent;border-bottom-=
color:rgb(34,34,34);border-bottom-style:none;border-bottom-width:0px;border=
-left-color:rgb(34,34,34);border-left-style:none;border-left-width:0px;bord=
er-right-color:rgb(34,34,34);border-right-style:none;border-right-width:0px=
;border-top-color:rgb(34,34,34);border-top-style:none;border-top-width:0px;=
color:rgb(34,34,34);font-size:13px;font-style:normal;font-variant:normal;fo=
nt-weight:400;letter-spacing:normal;margin-bottom:0px;margin-left:0px;margi=
n-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-righ=
t:0px;padding-top:0px;text-align:left;text-decoration:none;text-indent:0px;=
text-transform:none;white-space:normal;word-spacing:0px">=C2=A0 =C2=A0 }:</=
div></div><div>}:</div><div><br></div><div>What do you think about this ?</=
div>Is there a proposal that goes in this direction ?</div><div>Problems wi=
th parser (compiler front end , Doxygen =E2=80=A6) ?</div><div><br></div><d=
iv>Regards,</div><div><br></div><div>Philippe Ballereau</div></div></blockq=
uote><div>=C2=A0</div><div>Indeed, there is the same problem with template =
functions outside classes. A more general solution would be more appropriat=
e.<br></div><div>=C2=A0</div><div><br></div><div><br></div><div>=C2=A0</div=
></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/d6d86f52-cf86-4ff1-8074-32a7a8ab668e%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/d6d86f52-cf86-4ff1-8074-32a7a8ab668e=
%40isocpp.org</a>.<br />

------=_Part_2013_135483318.1548094648301--

------=_Part_2012_100854245.1548094648300--

.