This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/10619
- From: "Giovanni Bajo" <giovannibajo at libero dot it>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 4 May 2003 17:26:00 -0000
- Subject: Re: c++/10619
- Reply-to: "Giovanni Bajo" <giovannibajo at libero dot it>
The following reply was made to PR c++/10619; it has been noted by GNATS.
From: "Giovanni Bajo" <giovannibajo@libero.it>
To: "Wolfgang Bangerth" <bangerth@ices.utexas.edu>,
<gcc-gnats@gcc.gnu.org>
Cc: <gccbugs@contacts.eelis.net>
Subject: Re: c++/10619
Date: Sun, 4 May 2003 19:17:15 +0200
Wolfgang Bangerth <bangerth@ices.utexas.edu> wrote:
> Regarding the other example you have: you can't have a name being
> templatized on a type and a value, so the error message should read
> something like
> can't instantiate type-template foo<T> with a template _value_
I think that would break SFINAE again:
template <typename T> void foo(int ); // #1
template <int N> void foo(int ); // #2
foo<0>(4); // calls #2
Thus, the problem is that "foo<0>(4)" must silently fail specilization of
#1. If #2 is not present, the correct error is "no function matching call to
foo<0>(int)". To be picky, it'd be "foo<(integer-literal)>(int)".
Giovanni Bajo