[cxx-abi-dev] Mangling of variadic arguments to alias template
Jason Merrill
jason at redhat.com
Tue Dec 13 04:05:30 UTC 2011
In most cases, an alias template is transparent; when it's used in a
template we can just substitute in the dependent template arguments. So
it seems to make sense for it to be transparent to mangling as well.
But this doesn't work if the template-id uses a pack expansion for
non-variadic parameters. i.e.
template<class T, class U, class V>
struct S {};
template<class T, class V>
using A = S<T, int, V>;
template<class... Ts>
void foo(A<Ts...>);
There is no way to express A<Ts...> in terms of S; we need to wait until
we have the argument pack before we can assign individual arguments to
parameters.
So what do we want to do about this? Mangle alias-templates only in
this situation?
Jason
More information about the cxx-abi-dev
mailing list