Topic: Adding virtual/private/protected/public keywords


Author: Nicol Bolas <jmckesson@gmail.com>
Date: Tue, 3 Nov 2015 05:09:31 -0800 (PST)
Raw View
------=_Part_5294_425127676.1446556171128
Content-Type: multipart/alternative;
 boundary="----=_Part_5295_1702016543.1446556171128"

------=_Part_5295_1702016543.1446556171128
Content-Type: text/plain; charset=UTF-8

And what exactly should be the behavior if you use `BaseClasses` in a place
where inheritance qualifiers are meaningless?

--

---
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_5295_1702016543.1446556171128
Content-Type: text/html; charset=UTF-8

<div dir="ltr">And what exactly should be the behavior if you use `BaseClasses` in a place where inheritance qualifiers are meaningless?<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 email to <a href="mailto:std-proposals+unsubscribe@isocpp.org">std-proposals+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href="mailto:std-proposals@isocpp.org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href="http://groups.google.com/a/isocpp.org/group/std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/</a>.<br />

------=_Part_5295_1702016543.1446556171128--
------=_Part_5294_425127676.1446556171128--

.


Author: Andrew Tomazos <andrewtomazos@gmail.com>
Date: Tue, 3 Nov 2015 17:05:48 +0100
Raw View
--001a1144493831ed900523a511a8
Content-Type: text/plain; charset=UTF-8

On Tue, Nov 3, 2015 at 10:45 AM, <yannick.daveluy@gmail.com> wrote:

>
> When using variadic templates,  the syntax does not allow to use virtual,
> private, protected and public keywords prefixs for parameters.
>
>
> e.g:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *template <class ... BaseClasses>class A: BaseClasses...{    struct S:
> BaseClasses::S... {};};class B{    struct S{};};class C{    struct
> S{};};class D: public A< public virtual B, protected C > // =>do not
> compile{};==> D should inherit from the following class A':class A': public
> virtual B, protected C{    struct S: public virtual B::S, protected
> C::S{};};*
>

Putting the specific syntax aside for a moment - can you provide a
real-world example of where you would use such a feature?  I can't
immediately think of one, so right now it looks to me like it is motivated
from check-list completeness, rather than a real-world need.

--

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

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

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Nov 3, 2015 at 10:45 AM,  <span dir=3D"ltr">&lt;<a href=3D"mail=
to:yannick.daveluy@gmail.com" target=3D"_blank">yannick.daveluy@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"><br=
>When using variadic templates,=C2=A0 the syntax does not allow to use virt=
ual, private, protected and public keywords prefixs for parameters.<br><br>=
<br>e.g:<br><div style=3D"margin-left:40px"><br></div><div style=3D"margin-=
left:40px"><i>template &lt;class ... BaseClasses&gt;<br>class A: BaseClasse=
s...<br>{<br>=C2=A0=C2=A0=C2=A0 struct S: BaseClasses::S... {};<br>};<br><b=
r>class B<br>{<br>=C2=A0=C2=A0=C2=A0 struct S{};<br>};<br>class C<br>{<br>=
=C2=A0=C2=A0=C2=A0 struct S{};<br>};<br><br><br>class D: public A&lt; publi=
c virtual B, protected C &gt; // =3D&gt;do not compile<br>{<br>};<br><br>=
=3D=3D&gt; D should inherit from the following class A&#39;:<br>class A&#39=
;: public virtual B, protected C<br>{<br>=C2=A0=C2=A0=C2=A0 struct S: publi=
c virtual B::S, protected C::S{};<br>};</i></div></div></blockquote><div>=
=C2=A0</div><div>Putting the specific syntax aside for a moment - can you p=
rovide a real-world example of where you would use such a feature?=C2=A0 I =
can&#39;t immediately think of one, so right now it looks to me like it is =
motivated from check-list completeness, rather than a real-world need.</div=
><div><br></div></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 />

--001a1144493831ed900523a511a8--

.


Author: yannick.daveluy@gmail.com
Date: Wed, 4 Nov 2015 00:08:38 -0800 (PST)
Raw View
------=_Part_6106_1051089625.1446624518488
Content-Type: multipart/alternative;
 boundary="----=_Part_6107_1195752805.1446624518489"

------=_Part_6107_1195752805.1446624518489
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

The direct application is nested inheritance.

It's easier to illustrate it with an example:

/* A generic interface File */
class IF
{
/* stubs interfaces */
struct a{};
struct b{};
....
struct z{};
};

/* a generic model built from interfaces */

*template <class ... BaseClasses>class Model: *

*BaseClasses...{*
*struct a: *
*BaseClasses::a...{};struct b*

*: BaseClasses::b...{};...struct z*
*: BaseClasses::z...{};};*};

/* Some user sp=C3=A9cific models */
class UserModelIF1
{
/* only implement needed interfaces */
struct g { int i; float f;};
};
class UserModelIF2
{
/* only implement needed interfaces */
struct t { int i; float f;};
};

class UserModel: public *Model<public virtual *UserModelIF1, protected=20
UserModelIF2>
{
UserModel()
{
/* struct X would be a composition of all inherited interfaces */
};
};


Yannick=20
Le mardi 3 novembre 2015 10:45:42 UTC+1, yannick...@gmail.com a =C3=A9crit =
:
>
>
> When using variadic templates,  the syntax does not allow to use virtual,=
=20
> private, protected and public keywords prefixs for parameters.
>
>
> e.g:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *template <class ... BaseClasses>class A: BaseClasses...{    struct S:=20
> BaseClasses::S... {};};class B{    struct S{};};class C{    struct=20
> S{};};class D: public A< public virtual B, protected C > // =3D>do not=20
> compile{};=3D=3D> D should inherit from the following class A':class A': =
public=20
> virtual B, protected C{    struct S: public virtual B::S, protected=20
> C::S{};};*
>
> Yannick
>
>

--=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_6107_1195752805.1446624518489
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">The direct application is nested inheritance.<br><br>It&#3=
9;s easier to illustrate it with an example:<br><br>/* A generic interface =
File */<br>class IF<br>{<br>/* stubs interfaces */<br>struct a{};<br>struct=
 b{};<br>...<br>struct z{};<br>};<br><br>/* a generic model built from inte=
rfaces */<br><i>template &lt;class ... BaseClasses&gt;<br>class Model: </i>=
<i><i>BaseClasses</i>...<br>{<br></i><br><i>struct a: </i><i><i>BaseClasses=
::a...</i>{};<br>struct b</i><i><i>: </i><i><i>BaseClasses::b...</i></i>{};=
<br>...<br>struct z</i><i><i>: </i><i><i>BaseClasses::z...</i></i>{};};<br>=
</i>};<br><br>/* Some user sp=C3=A9cific models */<br>class UserModelIF1<br=
>{<br>/* only implement needed interfaces */<br>struct g { int i; float f;}=
;<br>};<br>class UserModelIF2<br>{<br>/* only implement needed interfaces *=
/<br>struct t { int i; float f;};<br>};<br><br>class UserModel: public <i>M=
odel&lt;public virtual </i>UserModelIF1, protected UserModelIF2&gt;<br>{<br=
>UserModel()<br>{<br>/* struct X would be a composition of all inherited in=
terfaces */<br>};<br>};<br><br><br>Yannick <br>Le mardi 3 novembre 2015 10:=
45:42 UTC+1, yannick...@gmail.com a =C3=A9crit=C2=A0:<blockquote class=3D"g=
mail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc sol=
id;padding-left: 1ex;"><div dir=3D"ltr"><br>When using variadic templates,=
=C2=A0 the syntax does not allow to use virtual, private, protected and pub=
lic keywords prefixs for parameters.<br><br><br>e.g:<br><div style=3D"margi=
n-left:40px"><br></div><div style=3D"margin-left:40px"><i>template &lt;clas=
s ... BaseClasses&gt;<br>class A: BaseClasses...<br>{<br>=C2=A0=C2=A0=C2=A0=
 struct S: BaseClasses::S... {};<br>};<br><br>class B<br>{<br>=C2=A0=C2=A0=
=C2=A0 struct S{};<br>};<br>class C<br>{<br>=C2=A0=C2=A0=C2=A0 struct S{};<=
br>};<br><br><br>class D: public A&lt; public virtual B, protected C &gt; /=
/ =3D&gt;do not compile<br>{<br>};<br><br>=3D=3D&gt; D should inherit from =
the following class A&#39;:<br>class A&#39;: public virtual B, protected C<=
br>{<br>=C2=A0=C2=A0=C2=A0 struct S: public virtual B::S, protected C::S{};=
<br>};<br></i></div><br>Yannick<br><br></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_6107_1195752805.1446624518489--
------=_Part_6106_1051089625.1446624518488--

.


Author: yannick.daveluy@gmail.com
Date: Wed, 4 Nov 2015 00:19:18 -0800 (PST)
Raw View
------=_Part_80_2021415333.1446625158659
Content-Type: multipart/alternative;
 boundary="----=_Part_81_139219109.1446625158659"

------=_Part_81_139219109.1446625158659
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Correction of the previous mesage:

/* Some user sp=C3=A9cific models */
class UserModelIF1*: public IF*
{
/* only implement needed interfaces */
struct g { int i; float f;};
};
class UserModelIF2*: public IF*
{
/* only implement needed interfaces */
struct t { int i; float f;};
};

Le mardi 3 novembre 2015 10:45:42 UTC+1, yannick...@gmail.com a =C3=A9crit =
:
>
>
> When using variadic templates,  the syntax does not allow to use virtual,=
=20
> private, protected and public keywords prefixs for parameters.
>
>
> e.g:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *template <class ... BaseClasses>class A: BaseClasses...{    struct S:=20
> BaseClasses::S... {};};class B{    struct S{};};class C{    struct=20
> S{};};class D: public A< public virtual B, protected C > // =3D>do not=20
> compile{};=3D=3D> D should inherit from the following class A':class A': =
public=20
> virtual B, protected C{    struct S: public virtual B::S, protected=20
> C::S{};};*
>
> Yannick
>
>

--=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_81_139219109.1446625158659
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Correction of the previous mesage:<br><br>/* Some user sp=
=C3=A9cific models */<br>class UserModelIF1<span style=3D"color: rgb(255, 0=
, 0);"><b>: public IF</b></span><br>{<br>/* only implement needed interface=
s */<br>struct g { int i; float f;};<br>};<br>class UserModelIF2<span style=
=3D"color: rgb(255, 0, 0);"><b>: public IF</b></span><br>{<br>/* only imple=
ment needed interfaces */<br>struct t { int i; float f;};<br>};<br><br>Le m=
ardi 3 novembre 2015 10:45:42 UTC+1, yannick...@gmail.com 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"><br>When =
using variadic templates,=C2=A0 the syntax does not allow to use virtual, p=
rivate, protected and public keywords prefixs for parameters.<br><br><br>e.=
g:<br><div style=3D"margin-left:40px"><br></div><div style=3D"margin-left:4=
0px"><i>template &lt;class ... BaseClasses&gt;<br>class A: BaseClasses...<b=
r>{<br>=C2=A0=C2=A0=C2=A0 struct S: BaseClasses::S... {};<br>};<br><br>clas=
s B<br>{<br>=C2=A0=C2=A0=C2=A0 struct S{};<br>};<br>class C<br>{<br>=C2=A0=
=C2=A0=C2=A0 struct S{};<br>};<br><br><br>class D: public A&lt; public virt=
ual B, protected C &gt; // =3D&gt;do not compile<br>{<br>};<br><br>=3D=3D&g=
t; D should inherit from the following class A&#39;:<br>class A&#39;: publi=
c virtual B, protected C<br>{<br>=C2=A0=C2=A0=C2=A0 struct S: public virtua=
l B::S, protected C::S{};<br>};<br></i></div><br>Yannick<br><br></div></blo=
ckquote></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_81_139219109.1446625158659--
------=_Part_80_2021415333.1446625158659--

.


Author: Klemens Morgenstern <klemens.morgenstern@gmx.net>
Date: Wed, 4 Nov 2015 03:39:48 -0800 (PST)
Raw View
------=_Part_6668_1458343094.1446637188509
Content-Type: multipart/alternative;
 boundary="----=_Part_6669_1152946316.1446637188510"

------=_Part_6669_1152946316.1446637188510
Content-Type: text/plain; charset=UTF-8

That seems like a rare corner-case to me. Why not just to this by tempalte
specialization?

template<typename T> struct Private      {};
template<typename T> struct Public       {};



tempalte<typename T> struct Ding {};


tempalte<typename T>
struct Ding<Private<T>> : private T {};


tempalte<typename T>
struct Ding<Public<T>> : public T {};

--

---
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_6669_1152946316.1446637188510
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">That seems like a rare corner-case to me. Why not just to =
this by tempalte specialization?<div><br></div><div class=3D"prettyprint" s=
tyle=3D"border: 1px solid rgb(187, 187, 187); word-wrap: break-word; backgr=
ound-color: rgb(250, 250, 250);"><code class=3D"prettyprint"><div class=3D"=
subprettyprint"><span style=3D"color: #008;" class=3D"styled-by-prettify">t=
emplate</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt=
;</span><span style=3D"color: #008;" class=3D"styled-by-prettify">typename<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> T</span><s=
pan style=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"co=
lor: #008;" class=3D"styled-by-prettify">struct</span><span style=3D"color:=
 #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #606;" c=
lass=3D"styled-by-prettify">Private</span><span style=3D"color: #000;" clas=
s=3D"styled-by-prettify"> =C2=A0 =C2=A0 =C2=A0</span><span style=3D"color: =
#660;" class=3D"styled-by-prettify">{};</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"><br></span><span style=3D"color: #008;" class=
=3D"styled-by-prettify">template</span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">&lt;</span><span style=3D"color: #008;" class=3D"st=
yled-by-prettify">typename</span><span style=3D"color: #000;" class=3D"styl=
ed-by-prettify"> T</span><span style=3D"color: #660;" class=3D"styled-by-pr=
ettify">&gt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify=
"> </span><span style=3D"color: #008;" class=3D"styled-by-prettify">struct<=
/span><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><sp=
an style=3D"color: #606;" class=3D"styled-by-prettify">Public</span><span s=
tyle=3D"color: #000;" class=3D"styled-by-prettify"> =C2=A0 =C2=A0 =C2=A0 </=
span><span style=3D"color: #660;" class=3D"styled-by-prettify">{};</span><s=
pan style=3D"color: #000;" class=3D"styled-by-prettify"><br><br><br><br>tem=
palte</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;<=
/span><span style=3D"color: #008;" class=3D"styled-by-prettify">typename</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> T</span><spa=
n style=3D"color: #660;" class=3D"styled-by-prettify">&gt;</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"> </span><span style=3D"colo=
r: #008;" class=3D"styled-by-prettify">struct</span><span style=3D"color: #=
000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #606;" cla=
ss=3D"styled-by-prettify">Ding</span><span 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-pretti=
fy"><br><br><br>tempalte</span><span style=3D"color: #660;" class=3D"styled=
-by-prettify">&lt;</span><span style=3D"color: #008;" class=3D"styled-by-pr=
ettify">typename</span><span style=3D"color: #000;" class=3D"styled-by-pret=
tify"> T</span><span style=3D"color: #660;" class=3D"styled-by-prettify">&g=
t;</span><span style=3D"color: #000;" class=3D"styled-by-prettify"> <br></s=
pan><span style=3D"color: #008;" class=3D"styled-by-prettify">struct</span>=
<span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span sty=
le=3D"color: #606;" class=3D"styled-by-prettify">Ding</span><span style=3D"=
color: #660;" class=3D"styled-by-prettify">&lt;</span><span style=3D"color:=
 #606;" class=3D"styled-by-prettify">Private</span><span style=3D"color: #6=
60;" class=3D"styled-by-prettify">&lt;</span><span style=3D"color: #000;" c=
lass=3D"styled-by-prettify">T</span><span style=3D"color: #660;" class=3D"s=
tyled-by-prettify">&gt;&gt;</span><span style=3D"color: #000;" class=3D"sty=
led-by-prettify"> </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: #008;" class=3D"styled-by-prettify">private</s=
pan><span style=3D"color: #000;" class=3D"styled-by-prettify"> T </span><sp=
an style=3D"color: #660;" class=3D"styled-by-prettify">{};</span><span styl=
e=3D"color: #000;" class=3D"styled-by-prettify"><br><br><br>tempalte</span>=
<span style=3D"color: #660;" class=3D"styled-by-prettify">&lt;</span><span =
style=3D"color: #008;" class=3D"styled-by-prettify">typename</span><span st=
yle=3D"color: #000;" class=3D"styled-by-prettify"> T</span><span style=3D"c=
olor: #660;" class=3D"styled-by-prettify">&gt;</span><span style=3D"color: =
#000;" class=3D"styled-by-prettify"> <br></span><span style=3D"color: #008;=
" class=3D"styled-by-prettify">struct</span><span style=3D"color: #000;" cl=
ass=3D"styled-by-prettify"> </span><span style=3D"color: #606;" class=3D"st=
yled-by-prettify">Ding</span><span style=3D"color: #660;" class=3D"styled-b=
y-prettify">&lt;</span><span style=3D"color: #606;" class=3D"styled-by-pret=
tify">Public</span><span style=3D"color: #660;" class=3D"styled-by-prettify=
">&lt;</span><span style=3D"color: #000;" class=3D"styled-by-prettify">T</s=
pan><span style=3D"color: #660;" class=3D"styled-by-prettify">&gt;&gt;</spa=
n><span style=3D"color: #000;" class=3D"styled-by-prettify"> </span><span s=
tyle=3D"color: #660;" class=3D"styled-by-prettify">:</span><span style=3D"c=
olor: #000;" class=3D"styled-by-prettify"> </span><span style=3D"color: #00=
8;" class=3D"styled-by-prettify">public</span><span style=3D"color: #000;" =
class=3D"styled-by-prettify"> T </span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">{};</span></div></code></div><div><div><br></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_6669_1152946316.1446637188510--
------=_Part_6668_1458343094.1446637188509--

.


Author: Jean-Marc Bourguet <jm.bourguet@gmail.com>
Date: Wed, 4 Nov 2015 04:06:25 -0800 (PST)
Raw View
------=_Part_251_928314203.1446638785382
Content-Type: multipart/alternative;
 boundary="----=_Part_252_689367768.1446638785382"

------=_Part_252_689367768.1446638785382
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Le mardi 3 novembre 2015 10:45:42 UTC+1, yannick...@gmail.com a =C3=A9crit =
:
>
>
> When using variadic templates,  the syntax does not allow to use virtual,=
=20
> private, protected and public keywords prefixs for parameters.
>
>
Could you point out cases where that feature would be useful? =20

Yours,

--=20
Jean-Marc

--=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_252_689367768.1446638785382
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Le mardi 3 novembre 2015 10:45:42 UTC+1, yannick...@gmail.=
com 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 di=
r=3D"ltr"><br>When using variadic templates,=C2=A0 the syntax does not allo=
w to use virtual, private, protected and public keywords prefixs for parame=
ters.<br><br></div></blockquote><div><br></div><div>Could you point out cas=
es where that feature would be useful? =C2=A0</div><div><br></div><div>Your=
s,</div><div><br></div><div>--=C2=A0</div><div>Jean-Marc</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_252_689367768.1446638785382--
------=_Part_251_928314203.1446638785382--

.