http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57520

David Krauss <potswa at mac dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |potswa at mac dot com

--- Comment #3 from David Krauss <potswa at mac dot com> ---
To summarize the above, template template argument deduction finds an alias
template used to declare an object instead of the template type the alias
resolved to. This is wrong because alias template specializations are not
distinct types.

The f1/g1 examples are extraneous. f2 matches the alias (wrong) and g2 matches
the type generated by the alias (correct).

One workaround is to simply add a typedef, this fixes overload resolution of
both functions.

   typedef Vec<int> vit;
   vit v;

I still reproduce this in a 4.9 trunk build from mid October.

Reply via email to