This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Problem with forward declaration of classes with nested templates
Hi John,
oh, thanks i thought i simplified as much as i can. But i guess i was
wrong. Maybe i shouldn't simplify that much. My the real problem
occurs when using 2 recurring templates like this:
-----------------
struct a;
struct b;
struct a
{
template<int i>
struct impl : public b::template impl<i>
{};
};
struct b
{
template<int i>
struct impl : public a::template impl<i-1>
{};
};
-----------------
but I know i can be happy by rewriting it to:
-----------------
struct a;
struct b;
struct a
{
template<int i>
struct impl;
};
struct b
{
template<int i>
struct impl;
};
template<int i>
struct a::impl : public b::template impl<i>
{};
template<int i>
struct b::impl : public a::template impl<i-1>
{};
-----------------
But the question still remains, why doesn't it compile. Can you name something ?
Regards,
Steven
On 9/26/06, John (Eljay) Love-Jensen <eljay@adobe.com> wrote:
Hi Steven,
It does not compile for the same reason this does not compile:
-----------------
struct b;
struct a : public b
{};
struct b
{};
-----------------
HTH,
--Eljay