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">&lt;</span><span class=3D"p=
ln"> </span><span class=3D"kwd">template</span><span class=3D"pln"> </span>=
<span class=3D"pun">&lt;</span><span class=3D"kwd">typename</span><span cla=
ss=3D"pun">...&gt;</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">&gt;</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">&lt;</span><span class=3D"pln"> </span><span class=3D"kwd">t=
emplate</span><span class=3D"pln"> </span><span class=3D"pun">&lt;</span><s=
pan class=3D"kwd">typename</span><span class=3D"pun">...&gt;</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">&gt;</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">&lt;</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">&lt;</s=
pan><span class=3D"typ">Args</span><span class=3D"pun">...&gt;</span><span =
class=3D"pln"> </span><span class=3D"pun">&gt;</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 />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_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 />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href="http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en">http://groups.google.com/a/isocpp.org/group/std-proposals/?hl=en</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_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 &quot;VinceRev&quot; &lt;<a href=3D"mailto:vinc=
e.rev@gmail.com">vince.rev@gmail.com</a>&gt;:<br>
&gt;<br>
&gt; Hello.<br>
&gt;<br>
&gt; 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>

&gt;<br>
&gt; template &lt; template &lt;typename...&gt; class Template, typename T =
&gt;<br>
&gt; struct is_specialization_of : std::false_type {};<br>
&gt;<br>
&gt; template &lt; template &lt;typename...&gt; class Template, typename...=
 Args &gt;<br>
&gt; struct is_specialization_of&lt; Template, Template&lt;Args...&gt; &gt;=
 : std::true_type {};<br>
&gt;<br>
&gt; The problem is that it will not work with template classes that have a=
 non-type parameter, like std::array.<br>
&gt; 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 &quot;it can be a type or a non-type parameter&quot;.<br>
&gt;<br>
&gt; 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>
&gt;</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_&lt;10&gt;).</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">&gt; Thank you.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; -- <br>
&gt; =A0<br>
&gt; --- <br>
&gt; You received this message because you are subscribed to the Google Gro=
ups &quot;ISO C++ Standard - Future Proposals&quot; group.<br>
&gt; 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>
&gt; To post to this group, send email to <a href=3D"mailto:std-proposals@i=
socpp.org">std-proposals@isocpp.org</a>.<br>
&gt; 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>
&gt; =A0<br>
&gt; =A0<br>
</p>

<p></p>

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

--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 &lt;auto Type=
 value&gt; class MyClass</span> -&gt; In that case if I declare <span style=
=3D"font-family: courier new,monospace;">MyClass&lt;3&gt;</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&lt;true&gt;</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 =
&lt;auto Type... value&gt; class MyClass</span> -&gt; In that case if I dec=
lare <span style=3D"font-family: courier new,monospace;">MyClass&lt;3, 4&gt=
;</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&lt;true,=
 false&gt;</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 &lt;auto... Type... value&gt; class MyClass</span> -&gt; In tha=
t case if I declare <span style=3D"font-family: courier new,monospace;">MyC=
lass&lt;3, true&gt;</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>,&nbsp;</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 &lt;auto...&gt; clas=
s MyClass</span> -&gt; 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&nbsp;:<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" &lt;<a href=3D"javascript:" target=
=3D"_blank" gdf-obfuscated-mailto=3D"gn4iaQdqmRAJ">vinc...@gmail.com</a>&gt=
;:<br>
&gt;<br>
&gt; Hello.<br>
&gt;<br>
&gt; 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>

&gt;<br>
&gt; template &lt; template &lt;typename...&gt; class Template, typename T =
&gt;<br>
&gt; struct is_specialization_of : std::false_type {};<br>
&gt;<br>
&gt; template &lt; template &lt;typename...&gt; class Template, typename...=
 Args &gt;<br>
&gt; struct is_specialization_of&lt; Template, Template&lt;Args...&gt; &gt;=
 : std::true_type {};<br>
&gt;<br>
&gt; The problem is that it will not work with template classes that have a=
 non-type parameter, like std::array.<br>
&gt; 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>
&gt;<br>
&gt; 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>
&gt;</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_&lt;10&gt;).</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">&gt; Thank you.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; -- <br>
&gt; &nbsp;<br>
&gt; --- <br>
&gt; You received this message because you are subscribed to the Google Gro=
ups "ISO C++ Standard - Future Proposals" group.<br>
&gt; 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>
&gt; 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>
&gt; 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>
&gt; &nbsp;<br>
&gt; &nbsp;<br>
</p>
</blockquote>

<p></p>

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

------=_Part_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 />
&nbsp;<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.<br />
To post to this group, send email to std-proposals@isocpp.org.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/?hl=3Den">http://groups.google.com/a/isocpp.org/group/std-pro=
posals/?hl=3Den</a>.<br />
&nbsp;<br />
&nbsp;<br />

------=_Part_2989_1446456.1366713813733--

.