[Bug c++/101221] New: Inaccurate error message for wrong template alias
Theodore.Papadopoulo at inria dot fr
gcc-bugzilla@gcc.gnu.org
Sat Jun 26 10:18:20 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101221
Bug ID: 101221
Summary: Inaccurate error message for wrong template alias
Product: gcc
Version: 10.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: Theodore.Papadopoulo at inria dot fr
Target Milestone: ---
Created attachment 51062
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51062&action=edit
Code showing the bug
The attached code produces the following message. The reference of the 'auto'
is at best surprising. Of course the code is wrong but the message is not very
helpful for identifying what is wrong.
mururoa-> g++ --std=c++20 test.C
test.C:16:18: error: ‘auto’ not allowed in alias declaration
16 | using OtherNew = One::AClass;
| ^~~
test.C:23:17: error: ‘auto’ not allowed in alias declaration
23 | using New = One::AClass;
| ^~~
clang does a slightly better job and at least at namespace level explains what
is wrong.
mururoa-> clang++ --std=c++20 test.C
test.C:16:23: error: use of class template 'One::AClass' requires template
arguments
using OtherNew = One::AClass;
^
test.C:4:43: note: template is declared here
template <Type type,typename T> class AClass;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
test.C:23:17: error: no type named 'AClass' in namespace 'One'; did you mean
'BClass'?
using New = One::AClass;
^~~~~~~~~~~
BClass
test.C:18:7: note: 'BClass' declared here
class BClass {
^
2 errors generated.
More information about the Gcc-bugs
mailing list