------- Additional Comments From giovannibajo at libero dot it  2005-03-23 
02:44 -------
I'll try to do this. This is a simple testcase:

---------------------------
template <class T, int N=0, int X=1>
struct A
{
   typedef typename T::x x;
};
void foo(void)
{
  A<void,0> a;
}
---------------------------
test.cc: At global scope:
test.cc: In instantiation of 'A<void, 0, 1>':
test.cc:8:   instantiated from here
test.cc:4: error: 'void' is not a class, struct, or union type

Do we want the error message to show 'A<void, 0>' or 'A<void>'? In other words, 
should GCC try and remember which arguments were really specified in the 
template-id (hard to do), or a simple check of equalness between the argument 
and the default parameter would suffice?


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dave at boost-consulting dot
                   |                            |com
         AssignedTo|unassigned at gcc dot gnu   |giovannibajo at libero dot
                   |dot org                     |it
             Status|NEW                         |ASSIGNED


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

Reply via email to