This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics
- From: "pl.smith.mail at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 18 Feb 2013 16:04:52 +0000
- Subject: [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Bug #: 56377
Summary: [4.8 Regression] <missing> template args in
substitution-failure diagnostics
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: pl.smith.mail@gmail.com
When a candidate function for which substituion failed is listed in a
diagnostic, if the failure stems from a template parameter that have an
explicit argument, the explicit arguments are listed as <missing>.
For example:
template <typename T>
typename T::type f();
int main () {
f<int>();
}
Produces (4.8, no flags):
test.cpp: In function ×âËint main()×ââ:
test.cpp:5:10: error: no matching function for call to 'f()'
f<int>();
^
test.cpp:5:10: note: candidate is:
test.cpp:2:18: note: template<class T> typename T::type f()
typename T::type f();
^
test.cpp:2:18: note: template argument deduction/substitution failed:
*************
test.cpp: In substitution of 'template<class T> typename T::type f() [with T =
<missing>]':
*************
test.cpp:5:10: required from here
test.cpp:2:18: error: 'int' is not a class, struct, or union type
In 4.7 it is "[with T = int]".