[Bug c++/16162] New: [3.4/3.5 regression] Rejects valid member-template-definition
bangerth at dealii dot org
gcc-bugzilla@gcc.gnu.org
Wed Jun 23 17:00:00 GMT 2004
Here's a particularly bad regression on the 3.4 branch, since there does
not seem to be a way to work around the problem. This code should be
valid:
--------------------
template <int N> struct O {
struct I {
template <typename T> struct II {
void f();
};
};
};
template <int N>
template <typename T>
void O<N>::I::II<T>::f () {}
--------------------
However, 3.4 branch and mainline reject the code:
g/x> /home/bangerth/bin/gcc-3.4-pre/bin/c++ -c x.cc
x.cc:15: error: non-template `II' used as template
x.cc:15: error: (use `typename O<N>::I::template II' to indicate that it is a
template)
x.cc:15: error: expected init-declarator at end of input
x.cc:15: error: expected `;' at end of input
No fun :-((
W.
--
Summary: [3.4/3.5 regression] Rejects valid member-template-
definition
Product: gcc
Version: 3.4.1
Status: UNCONFIRMED
Keywords: rejects-valid
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bangerth at dealii dot org
CC: gcc-bugs at gcc dot gnu dot org,mmitchel at gcc dot gnu
dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16162
More information about the Gcc-bugs
mailing list