When compiling a program such as:

template <typename T>
void foo(T, typename T::type c) {c.y();}
struct x {typedef int type;};
void f() {foo(x(), 3);}

GCC 4.5.0 (correctly) produces the error message:

foo.cpp: In function ‘void foo(T, typename T::type) [with T = x, typename
T::type = int]’:
foo.cpp:4:21:   instantiated from here
foo.cpp:2:34: error: request for member ‘y’ in ‘c’, which is of non-class type
‘x::type’

My feature request is to have the comma between "T = x" and "typename T::type =
int" replaced by a semicolon (or perhaps some other character).  In larger
programs, the types given in the error message often themselves contain commas,
while they do not typically contain semicolons.  Thus, this change would make
the error messages easier to understand (and, in particular, to skim).


-- 
           Summary: Request to change comma to semicolon in error message
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jewillco at osl dot iu dot edu
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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

Reply via email to