Article View: be.comp.programming
Article #6459Re: ISO C++ does not permit ...
From: Dominique Devriese
Date: Tue, 10 Dec 2002 18:25
Date: Tue, 10 Dec 2002 18:25
50 lines
2305 bytes
2305 bytes
Franky Braem writes:
> class A : public T<A> { };
> template<class T1> class T { public:
> static int var;
> };
> Het volgende werkt in VC++ :
> int A::var = 0;
> maar werkt niet met gcc.
> Klasse A is gedefinieerd volgens het "Curiously Recursive Template
> Pattern".
template<class T1>
class T
{
public:
static int var;
};
template<class T1> int T<T1>::var;
class A : public T<A>
{
};
int main()
{
A::var = 0;
}
deze code werkt in gcc.
Ik weet niet wat er juist mis is gegaan (misschien de foutmelding
posten ? ) maar deze twee dingen ben je mss vergeten:
Een statische variabele moet je buiten de klasse-definitie nog apart
definieren: daarvoor dient de lijn "template<class T1> int T<T1>::var;".
en je moet de template-klasse natuurlijk definieren voor je A ervan
laat erven, maar dat zul je wel weten, veronderstel ik..
sjuus
domi
--
Nothing so needs reforming as other people's habits.
-- Mark Twain, "Pudd'nhead Wilson's Calendar"
Technical Details
Message-ID:
<878yyxloiw.fsf@appel.kotnet.org>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!newshosting.com!news-xfer1.atl.newshosting.com!news.stealth.net!news.stealth.net!syros.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mailReferences:
<3df5fa6b$0$20770$ba620e4c@news.skynet.be> <87lm2ykkpg.fsf@appel.kotnet.org> <3df6309c$0$8499$ba620e4c@news.skynet.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,c436a161484c41f1 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-12-10 10:27:59 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!newshosting.com!news-xfer1.atl.newshosting.com!news.stealth.net!news.stealth.net!syros.belnet.be!naxos.belnet.be!news.belnet.be!not-for-mail From: Dominique Devriese <dominique.devriese@student.kuleuven.ac.be> Newsgroups: be.comp.programming Subject: Re: ISO C++ does not permit ... Date: 10 Dec 2002 19:25:27 +0100 Organization: KULeuvenNet Lines: 50 Sender: domi@appel Message-ID: <878yyxloiw.fsf@appel.kotnet.org> References: <3df5fa6b$0$20770$ba620e4c@news.skynet.be> <87lm2ykkpg.fsf@appel.kotnet.org> <3df6309c$0$8499$ba620e4c@news.skynet.be> NNTP-Posting-Host: seven.kulnet.kuleuven.ac.be Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: naxos.belnet.be 1039544873 10124 134.58.127.12 (10 Dec 2002 18:27:53 GMT) X-Complaints-To: abuse@belnet.be NNTP-Posting-Date: Tue, 10 Dec 2002 18:27:53 +0000 (UTC) User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Common Lisp) Cache-Post-Path: seven.kulnet.kuleuven.ac.be!unknown@domi.kotnet.org X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)