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

             Bug #: 57013
           Summary: pretty-printing canonical template-parameters is more
                    confusing than helpful
    Classification: Unclassified
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: m...@gcc.gnu.org


manuel@gcc10:~/test3/198021M/build/gcc$ ~/test3/198021M/build/gcc/cc1plus
/home/manuel/test3/src/gcc/testsuite/g++.dg/cpp0x/variadic79.C -std=c++11
/home/manuel/test3/src/gcc/testsuite/g++.dg/cpp0x/variadic79.C:7:57: error:
type/value mismatch at argument 1 in template parameter list for
‘template<template<class> class ...<template-parameter-1-1> > struct A’
 template<template<typename...> class... B> struct A<B...> {}; // { dg-error
"mismatch|'template<class ...> class ... B ...'" }
                                                         ^
/home/manuel/test3/src/gcc/testsuite/g++.dg/cpp0x/variadic79.C:7:57: error:  
expected a template of type ‘template<class> class
...<template-parameter-1-1>’, got ‘template<class ...> class ... B ...’


In this case, the canonical names are quite confusing, we'll be better off not
printing them at all. Just print ‘template<template<class> class ... > struct
A’ and 'template<class> class ...'

The second error should be a note and it should point to the declaration of A
and the parameter there.

Reply via email to