This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigDD6F5C1BFAF9589872041ECF
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Heiko Wundram (Beenic) wrote, On 27.12.2007 16:21:
> Hey all!
>=20
> I'm currently trying to implement (and use) a C++ member function templ=
ate,=20
> but GCC won't eat the code I feed it.
>=20
> The problem is most probably related to the fact that the group of memb=
er=20
> functions is only discriminated by return type (i.e., the template para=
meter=20
> defines the return type), not by parameter (which could be inferred).
>=20
> From what I gather, the C++ spec should allow the following code to wor=
k (the=20
> following is simplified from what I have, but pretty much the same=20
> syntactically):
>=20
> """
> template <typename U>
> class Test
> {
>=20
> public:
>=20
> template <typename V>
> V test()
> throw()
> {
> // Some stuff.
> }
>=20
> };
>=20
> template <typename U, typename V>
> void test2()
> throw()
> {
> Test<V>* x =3D new Test<V>();
> x->test<U>();
Change this to x->template test<U>(); For explanation see 14.2/4 of the y=
ear
2003 revision of the standard.
> delete x;
> }
>=20
> int main(int argc, char** argv)
> {
> test2<int,short>();
> }
> """
>=20
> gcc doesn't compile this code, no matter what I try to change the x->te=
st<U>=20
> expression to. It does compile the code if the type of x is not defined=
via a=20
> template parameter in test2.
>=20
> If this is against the specs, please tell me, otherwise, looking forwar=
d to=20
> any hints on what may cause this!
>=20
--
VH
--------------enigDD6F5C1BFAF9589872041ECF
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHdBqYoUFWwtEPkHIRCIG8AJwJm+dnyWTwSLRNgt58iJIPcOGGTwCfTPLW
StST+Ij37yYNJ6A8rCL4x6M=
=zipN
-----END PGP SIGNATURE-----
--------------enigDD6F5C1BFAF9589872041ECF--