🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #15

self referential class templates don't compile

#15
From: Ray Tice
Date: Fri, 30 Oct 1992 20:59
43 lines
1432 bytes
Causes problems with g++ (through 2.2.2)
Don't see anything in Ellis & Stroustrup that prevents this.
Works fine with Borland C++ 3.0.

/////////////////////// Test 1 fails
template<class A, class B>class Cross1 {
    Cross1<B, A> *a;    //parse error before `,'; parse error before `a'
};
void test1() { Cross1<int, float> cross1; };
////////////////////////

Thanks
Ray Tice
ray@westford.ccur.com

(relevant test cases follow)

/////////////////////////////////// Test 2 fails

template<class A>class Cross2 {
        Cross2<A> *a;           //parse error before `>'
};

void test2() { Cross2<int> cross2; };

/////////////////////////////////// Test 3 passes

template<class A, class B>class Cross3a {
        A *a;
        B *b;
};

template<class A, class B>class Cross3b {
        Cross3a<B,A> *a;
};

void test3() { Cross3b<int, float> cross3; };

/////////////////////////////////// Test 4 passes

class Cross4 {
        Cross4 *a;
};
Technical Details
Message-ID: <9210301557.aa02018@athena.westford.ccur.com>
Path: arc1-ca.pugleaf.net!sparky!uunet!think.com!rpi!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!westford.ccur.COM!ray

Show Full Headers
Complete Article Headers
Newsgroups: gnu.g++.bug
Path: arc1-ca.pugleaf.net!sparky!uunet!think.com!rpi!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!westford.ccur.COM!ray
From: ray@westford.ccur.COM (Ray Tice)
Subject: self referential class templates don't compile
Message-ID: <9210301557.aa02018@athena.westford.ccur.com>
Sender: gnulists@ai.mit.edu
Organization: GNUs Not Usenet
Distribution: gnu
Date: Fri, 30 Oct 1992 20:59:22 GMT
Approved: bug-g++@prep.ai.mit.edu
Lines: 47