Topic: An abstraction of type or non-type for template
Author: VinceRev <vince.rev@gmail.com>
Date: Mon, 22 Apr 2013 08:35:39 -0700 (PDT)
Raw View
------=_Part_115_25464339.1366644939023
Content-Type: text/plain; charset=ISO-8859-1
Hello.
I think that there is currently an issue with variadic templates. If I want
to detect if a type is a specialization of a template class, I can write
the following type trait (from here:
http://stackoverflow.com/questions/12919310/c-detect-templated-class/12919396#12919396
):
template < template <typename...> class Template, typename T >struct is_specialization_of : std::false_type {};
template < template <typename...> class Template, typename... Args >struct is_specialization_of< Template, Template<Args...> > : std::true_type {};
The problem is that it will not work with template classes that have a non-type parameter, like std::array.
I use a lot of metaprogramming involving type_traits and variadic templates, and I regularly face this problem. I would be usefull to have a syntax meaning "it can be a type or a non-type parameter".
For now, I do not have any proposal to make, but I would like to have some commentaries about this limitation (and maybe a workaround if someone know how to do this).
Thank you.
--
---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.
------=_Part_115_25464339.1366644939023
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Hello.<br><br>I think that there is currently an issue with variadic templa=
tes. If I want to detect if a type is a specialization of a template class,=
I can write the following type trait (from here: http://stackoverflow.com/=
questions/12919310/c-detect-templated-class/12919396#12919396 ):<br><br><pr=
e style=3D"" class=3D"default prettyprint prettyprinted"><span style=3D"fon=
t-family: courier new,monospace;"><code><span class=3D"kwd">template</span>=
<span class=3D"pln"> </span><span class=3D"pun"><</span><span class=3D"p=
ln"> </span><span class=3D"kwd">template</span><span class=3D"pln"> </span>=
<span class=3D"pun"><</span><span class=3D"kwd">typename</span><span cla=
ss=3D"pun">...></span><span class=3D"pln"> </span><span class=3D"kwd">cl=
ass</span><span class=3D"pln"> </span><span class=3D"typ">Template</span><s=
pan class=3D"pun">,</span><span class=3D"pln"> </span><span class=3D"kwd">t=
ypename</span><span class=3D"pln"> T </span><span class=3D"pun">></span>=
<span class=3D"pln">
</span><span class=3D"kwd">struct</span><span class=3D"pln"> is_specializat=
ion_of </span><span class=3D"pun">:</span><span class=3D"pln"> std</span><s=
pan class=3D"pun">::</span><span class=3D"pln">false_type </span><span clas=
s=3D"pun">{};</span><span class=3D"pln">
</span><span class=3D"kwd">template</span><span class=3D"pln"> </span><span=
class=3D"pun"><</span><span class=3D"pln"> </span><span class=3D"kwd">t=
emplate</span><span class=3D"pln"> </span><span class=3D"pun"><</span><s=
pan class=3D"kwd">typename</span><span class=3D"pun">...></span><span cl=
ass=3D"pln"> </span><span class=3D"kwd">class</span><span class=3D"pln"> </=
span><span class=3D"typ">Template</span><span class=3D"pun">,</span><span c=
lass=3D"pln"> </span><span class=3D"kwd">typename</span><span class=3D"pun"=
>...</span><span class=3D"pln"> </span><span class=3D"typ">Args</span><span=
class=3D"pln"> </span><span class=3D"pun">></span><span class=3D"pln">
</span><span class=3D"kwd">struct</span><span class=3D"pln"> is_specializat=
ion_of</span><span class=3D"pun"><</span><span class=3D"pln"> </span><sp=
an class=3D"typ">Template</span><span class=3D"pun">,</span><span class=3D"=
pln"> </span><span class=3D"typ">Template</span><span class=3D"pun"><</s=
pan><span class=3D"typ">Args</span><span class=3D"pun">...></span><span =
class=3D"pln"> </span><span class=3D"pun">></span><span class=3D"pln"> <=
/span><span class=3D"pun">:</span><span class=3D"pln"> std</span><span clas=
s=3D"pun">::</span><span class=3D"pln">true_type </span><span class=3D"pun"=
>{};<br><br><span style=3D"font-family: arial,sans-serif;">The problem is t=
hat it will not work with template classes that have a non-type parameter, =
like <span style=3D"font-family: courier new,monospace;">std::array</span>.=
</span><br></span></code></span><span style=3D"font-family: courier new,mon=
ospace;"><code><span class=3D"pun"><span style=3D"font-family: arial,sans-s=
erif;">I use a lot of metaprogramming involving type_traits and variadic te=
mplates, and I regularly face this problem. I would be usefull to have a sy=
ntax meaning "it can be a type or a non-type parameter".<br><br>For now, I =
do not have any proposal to make, but I would like to have some commentarie=
s about this limitation (and maybe a workaround if someone know how to do t=
his).<br><br>Thank you.<br><br><br></span></span></code></span></pre><br>
<p></p>
-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
<br />
<br />
------=_Part_115_25464339.1366644939023--
.
Author: DeadMG <wolfeinstein@gmail.com>
Date: Mon, 22 Apr 2013 09:53:54 -0700 (PDT)
Raw View
------=_Part_509_27354716.1366649634956
Content-Type: text/plain; charset=ISO-8859-1
The Standard suffers a similar problem in allocator_traits::rebind, where
it tries to rebind a custom allocator. It will also fail if the allocator
has a non-type template parameter.
--
---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.
------=_Part_509_27354716.1366649634956
Content-Type: text/html; charset=ISO-8859-1
The Standard suffers a similar problem in allocator_traits::rebind, where it tries to rebind a custom allocator. It will also fail if the allocator has a non-type template parameter.
<p></p>
-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href="http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en">http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en</a>.<br />
<br />
<br />
------=_Part_509_27354716.1366649634956--
.
Author: Johannes Schaub <schaub.johannes@googlemail.com>
Date: Mon, 22 Apr 2013 19:03:32 +0200
Raw View
--047d7b2e3e5074969104daf60c14
Content-Type: text/plain; charset=ISO-8859-1
Am 22.04.2013 17:35 schrieb "VinceRev" <vince.rev@gmail.com>:
>
> Hello.
>
> I think that there is currently an issue with variadic templates. If I
want to detect if a type is a specialization of a template class, I can
write the following type trait (from here:
http://stackoverflow.com/questions/12919310/c-detect-templated-class/12919396#12919396):
>
> template < template <typename...> class Template, typename T >
> struct is_specialization_of : std::false_type {};
>
> template < template <typename...> class Template, typename... Args >
> struct is_specialization_of< Template, Template<Args...> > :
std::true_type {};
>
> The problem is that it will not work with template classes that have a
non-type parameter, like std::array.
> I use a lot of metaprogramming involving type_traits and variadic
templates, and I regularly face this problem. I would be usefull to have a
syntax meaning "it can be a type or a non-type parameter".
>
> For now, I do not have any proposal to make, but I would like to have
some commentaries about this limitation (and maybe a workaround if someone
know how to do this).
>
This is one of the major (afaik) reasons why the boost mpl uses types to
represent numeric entities (int_<10>).
Same applies to meta function templates (aka T::template apply) that are
passed as type T instead of as the template T::apply.
> Thank you.
>
>
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
"ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> Visit this group at
http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.
>
>
--
---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.
--047d7b2e3e5074969104daf60c14
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
<p dir=3D"ltr"><br>
Am 22.04.2013 17:35 schrieb "VinceRev" <<a href=3D"mailto:vinc=
e.rev@gmail.com">vince.rev@gmail.com</a>>:<br>
><br>
> Hello.<br>
><br>
> I think that there is currently an issue with variadic templates. If I=
want to detect if a type is a specialization of a template class, I can wr=
ite the following type trait (from here: <a href=3D"http://stackoverflow.co=
m/questions/12919310/c-detect-templated-class/12919396#12919396">http://sta=
ckoverflow.com/questions/12919310/c-detect-templated-class/12919396#1291939=
6</a> ):<br>
><br>
> template < template <typename...> class Template, typename T =
><br>
> struct is_specialization_of : std::false_type {};<br>
><br>
> template < template <typename...> class Template, typename...=
Args ><br>
> struct is_specialization_of< Template, Template<Args...> >=
: std::true_type {};<br>
><br>
> The problem is that it will not work with template classes that have a=
non-type parameter, like std::array.<br>
> I use a lot of metaprogramming involving type_traits and variadic temp=
lates, and I regularly face this problem. I would be usefull to have a synt=
ax meaning "it can be a type or a non-type parameter".<br>
><br>
> For now, I do not have any proposal to make, but I would like to have =
some commentaries about this limitation (and maybe a workaround if someone =
know how to do this).<br>
></p>
<p dir=3D"ltr">This is one of the major (afaik) reasons why the boost mpl u=
ses types to represent numeric entities (int_<10>).</p>
<p dir=3D"ltr">Same applies to meta function templates (aka T::template app=
ly) that are passed as type T instead of as the template T::apply.</p>
<p dir=3D"ltr">> Thank you.<br>
><br>
><br>
><br>
> -- <br>
> =A0<br>
> --- <br>
> You received this message because you are subscribed to the Google Gro=
ups "ISO C++ Standard - Future Proposals" group.<br>
> To unsubscribe from this group and stop receiving emails from it, send=
an email to <a href=3D"mailto:std-proposals%2Bunsubscribe@isocpp.org">std-=
proposals+unsubscribe@isocpp.org</a>.<br>
> To post to this group, send email to <a href=3D"mailto:std-proposals@i=
socpp.org">std-proposals@isocpp.org</a>.<br>
> Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/g=
roup/std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/st=
d-proposals/?hl=3Den</a>.<br>
> =A0<br>
> =A0<br>
</p>
<p></p>
-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
<br />
<br />
--047d7b2e3e5074969104daf60c14--
.
Author: VinceRev <vince.rev@gmail.com>
Date: Mon, 22 Apr 2013 11:12:45 -0700 (PDT)
Raw View
------=_Part_318_21835615.1366654365086
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
So what do you think about the following syntax:
----------------
template <auto Type value> class MyClass -> In that case if I declare=20
MyClass<3> then Type =3D int and value =3D 3, or MyClass<true> then Type =
=3D bool and=20
value =3D true.
template <auto Type... value> class MyClass -> In that case if I declare My=
Class<3,=20
4> then Type =3D int and value =3D 3 and 4, or MyClass<true, false> then Ty=
pe =3D=20
bool and value =3D true and false.
template <auto... Type... value> class MyClass -> In that case if I declare=
MyClass<3,=20
true> then Type =3D int and bool, value =3D 3 and true.
template <auto...> class MyClass -> In that case, auto provide variadic=20
template with mixed type/non-type
----------------
I don't even know whether compilers would be able to correctly interpret=20
this, but I would like a syntax like this.
Le lundi 22 avril 2013 19:03:32 UTC+2, Johannes Schaub a =E9crit :
>
>
> Am 22.04.2013 17:35 schrieb "VinceRev" <vinc...@gmail.com <javascript:>>:
> >
> > Hello.
> >
> > I think that there is currently an issue with variadic templates. If I=
=20
> want to detect if a type is a specialization of a template class, I can=
=20
> write the following type trait (from here:=20
> http://stackoverflow.com/questions/12919310/c-detect-templated-class/1291=
9396#12919396):
> >
> > template < template <typename...> class Template, typename T >
> > struct is_specialization_of : std::false_type {};
> >
> > template < template <typename...> class Template, typename... Args >
> > struct is_specialization_of< Template, Template<Args...> > :=20
> std::true_type {};
> >
> > The problem is that it will not work with template classes that have a=
=20
> non-type parameter, like std::array.
> > I use a lot of metaprogramming involving type_traits and variadic=20
> templates, and I regularly face this problem. I would be usefull to have =
a=20
> syntax meaning "it can be a type or a non-type parameter".
> >
> > For now, I do not have any proposal to make, but I would like to have=
=20
> some commentaries about this limitation (and maybe a workaround if someon=
e=20
> know how to do this).
> >
>
> This is one of the major (afaik) reasons why the boost mpl uses types to=
=20
> represent numeric entities (int_<10>).
>
> Same applies to meta function templates (aka T::template apply) that are=
=20
> passed as type T instead of as the template T::apply.
>
> > Thank you.
> >
> >
> >
> > --=20
> > =20
> > ---=20
> > You received this message because you are subscribed to the Google=20
> Groups "ISO C++ Standard - Future Proposals" group.
> > To unsubscribe from this group and stop receiving emails from it, send=
=20
> an email to std-proposal...@isocpp.org <javascript:>.
> > To post to this group, send email to std-pr...@isocpp.org <javascript:>=
..
> > Visit this group at=20
> http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=3Den.
> > =20
> > =20
> =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.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/?hl=3Den.
------=_Part_318_21835615.1366654365086
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
So what do you think about the following syntax:<br><span style=3D"font-fam=
ily: courier new,monospace;"><br>----------------<br>template <auto Type=
value> class MyClass</span> -> In that case if I declare <span style=
=3D"font-family: courier new,monospace;">MyClass<3></span> then <span=
style=3D"font-family: courier new,monospace;">Type =3D int</span> and <spa=
n style=3D"font-family: courier new,monospace;">value =3D 3</span>, or <spa=
n style=3D"font-family: courier new,monospace;">MyClass<true></span> =
then <span style=3D"font-family: courier new,monospace;">Type =3D bool </sp=
an>and <span style=3D"font-family: courier new,monospace;">value =3D true</=
span>.<br><span style=3D"font-family: courier new,monospace;"><br>template =
<auto Type... value> class MyClass</span> -> In that case if I dec=
lare <span style=3D"font-family: courier new,monospace;">MyClass<3, 4>=
;</span> then <span style=3D"font-family: courier new,monospace;">Type =3D =
int</span> and <span style=3D"font-family: courier new,monospace;">value =
=3D 3</span> and <span style=3D"font-family: courier new,monospace;">4</spa=
n>, or <span style=3D"font-family: courier new,monospace;">MyClass<true,=
false></span> then <span style=3D"font-family: courier new,monospace;">=
Type =3D bool </span>and <span style=3D"font-family: courier new,monospace;=
">value =3D true</span> and <span style=3D"font-family: courier new,monospa=
ce;">false</span>.<br><span style=3D"font-family: courier new,monospace;"><=
br>template <auto... Type... value> class MyClass</span> -> In tha=
t case if I declare <span style=3D"font-family: courier new,monospace;">MyC=
lass<3, true></span> then <span style=3D"font-family: courier new,mon=
ospace;">Type =3D int</span> and <span style=3D"font-family: courier new,mo=
nospace;">bool</span><span style=3D"font-family: courier new,monospace;"><s=
pan style=3D"font-family: courier new,monospace;"></span>, </span> <sp=
an style=3D"font-family: courier new,monospace;">value =3D 3</span> and <sp=
an style=3D"font-family: courier new,monospace;">true</span>.<br><br><span =
style=3D"font-family: courier new,monospace;">template <auto...> clas=
s MyClass</span> -> In that case, auto provide variadic template with mi=
xed type/non-type<span style=3D"font-family: courier new,monospace;"><br>--=
--------------</span><br><br>I don't even know whether compilers would be a=
ble to correctly interpret this, but I would like a syntax like this.<br><b=
r>Le lundi 22 avril 2013 19:03:32 UTC+2, Johannes Schaub a =E9crit :<b=
lockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;borde=
r-left: 1px #ccc solid;padding-left: 1ex;"><p dir=3D"ltr"><br>
Am 22.04.2013 17:35 schrieb "VinceRev" <<a href=3D"javascript:" target=
=3D"_blank" gdf-obfuscated-mailto=3D"gn4iaQdqmRAJ">vinc...@gmail.com</a>>=
;:<br>
><br>
> Hello.<br>
><br>
> I think that there is currently an issue with variadic templates. If I=
want to detect if a type is a specialization of a template class, I can wr=
ite the following type trait (from here: <a href=3D"http://stackoverflow.co=
m/questions/12919310/c-detect-templated-class/12919396#12919396" target=3D"=
_blank">http://stackoverflow.com/<wbr>questions/12919310/c-detect-<wbr>temp=
lated-class/12919396#<wbr>12919396</a> ):<br>
><br>
> template < template <typename...> class Template, typename T =
><br>
> struct is_specialization_of : std::false_type {};<br>
><br>
> template < template <typename...> class Template, typename...=
Args ><br>
> struct is_specialization_of< Template, Template<Args...> >=
: std::true_type {};<br>
><br>
> The problem is that it will not work with template classes that have a=
non-type parameter, like std::array.<br>
> I use a lot of metaprogramming involving type_traits and variadic temp=
lates, and I regularly face this problem. I would be usefull to have a synt=
ax meaning "it can be a type or a non-type parameter".<br>
><br>
> For now, I do not have any proposal to make, but I would like to have =
some commentaries about this limitation (and maybe a workaround if someone =
know how to do this).<br>
></p>
<p dir=3D"ltr">This is one of the major (afaik) reasons why the boost mpl u=
ses types to represent numeric entities (int_<10>).</p>
<p dir=3D"ltr">Same applies to meta function templates (aka T::template app=
ly) that are passed as type T instead of as the template T::apply.</p>
<p dir=3D"ltr">> Thank you.<br>
><br>
><br>
><br>
> -- <br>
> <br>
> --- <br>
> You received this message because you are subscribed to the Google Gro=
ups "ISO C++ Standard - Future Proposals" group.<br>
> To unsubscribe from this group and stop receiving emails from it, send=
an email to <a href=3D"javascript:" target=3D"_blank" gdf-obfuscated-mailt=
o=3D"gn4iaQdqmRAJ">std-proposal...@<wbr>isocpp.org</a>.<br>
> To post to this group, send email to <a href=3D"javascript:" target=3D=
"_blank" gdf-obfuscated-mailto=3D"gn4iaQdqmRAJ">std-pr...@isocpp.org</a>.<b=
r>
> Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/g=
roup/std-proposals/?hl=3Den" target=3D"_blank">http://groups.google.com/a/<=
wbr>isocpp.org/group/std-<wbr>proposals/?hl=3Den</a>.<br>
> <br>
> <br>
</p>
</blockquote>
<p></p>
-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
<br />
<br />
------=_Part_318_21835615.1366654365086--
.
Author: Jonathan Wakely <cxx@kayari.org>
Date: Tue, 23 Apr 2013 03:43:33 -0700 (PDT)
Raw View
------=_Part_2989_1446456.1366713813733
Content-Type: text/plain; charset=ISO-8859-1
On Monday, April 22, 2013 5:53:54 PM UTC+1, DeadMG wrote:
>
> The Standard suffers a similar problem in allocator_traits::rebind, where
> it tries to rebind a custom allocator. It will also fail if the allocator
> has a non-type template parameter.
Yes, such as custom allocator has to provide its own rebind member, the
default provided by allocator_traits can't be used.
Similarly for pointer_traits::rebind.
--
---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en.
------=_Part_2989_1446456.1366713813733
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
On Monday, April 22, 2013 5:53:54 PM UTC+1, DeadMG wrote:<blockquote class=
=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #cc=
c solid;padding-left: 1ex;">The Standard suffers a similar problem in alloc=
ator_traits::rebind, where it tries to rebind a custom allocator. It will a=
lso fail if the allocator has a non-type template parameter.</blockquote><d=
iv><br>Yes, such as custom allocator has to provide its own rebind member, =
the default provided by allocator_traits can't be used.<br><br>Similarly fo=
r pointer_traits::rebind.<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" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
<br />
<br />
------=_Part_2989_1446456.1366713813733--
.