This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/19054] New: Parse error in calls to template function members
- From: "dummy1 at gazeta dot pl" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Dec 2004 13:48:09 -0000
- Subject: [Bug c++/19054] New: Parse error in calls to template function members
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
// Just compile the following source
struct A {
template <int n> int get_n() { return n; }
};
template <int n>
struct B {
template <int m> int get_nm() { return n + m; }
};
struct C {
template <int n>
int get_n() { A a; return a.get_n<n>(); }
template <int n>
struct D {
int get_n()
{
A a;
return a.get_n<n>(); // Parse error here. It works under g++ 3.4
// Workaround: return a.A::get_n<n>();
}
template <int m>
int get_nm() { return n + m; }
template <int m>
int t() { return n + m; }
};
template <int n, int m>
int get_nm() { B<n> b; return b.get_nm<m>(); }
template <int n, int m>
void t_m()
{
D<n> wm;
wm.t<m>(); // parse error here
// Workaround: change function name form `t_m' to `t' !?!
}
};
int main()
{
A a;
B<1> b;
C c;
C::D<2> d;
a.get_n<2>();
b.get_nm<2>();
c.get_n<2>();
d.get_n();
c.t_m<1,2>();
return 0;
}
--
Summary: Parse error in calls to template function members
Product: gcc
Version: 3.4.4
Status: UNCONFIRMED
Severity: minor
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dummy1 at gazeta dot pl
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i486-pc-linux-gnu
GCC host triplet: i486-pc-linux-gnu
GCC target triplet: i486-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19054