delorie.com/archives/browse.cgi | search |
From: | dontmailme AT iname DOT com (Steamer) |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: [HELP]: Template Question |
Date: | Mon, 04 Dec 2000 10:34:25 GMT |
Organization: | always disorganized |
Lines: | 17 |
Message-ID: | <3a2b72ff.6193680@news.freeserve.net> |
References: | <3A2AE1BC DOT CEE72E58 AT vt DOT edu> |
NNTP-Posting-Host: | modem-86.texas.dialup.pol.co.uk |
X-Trace: | news8.svr.pol.co.uk 975926065 6179 62.137.94.86 (4 Dec 2000 10:34:25 GMT) |
NNTP-Posting-Date: | 4 Dec 2000 10:34:25 GMT |
X-Complaints-To: | abuse AT theplanet DOT net |
X-Newsreader: | Forte Free Agent 1.11/32.235 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Farooq Azam wrote: > I need some help/sugegstions with compilation of the following code. It > compiles fine under MS-VC++ 6 and does not under g++ version 2.952. > template<class T> class Complex > { > friend ostream& operator << (ostream &output, const Complex<T> &complex); This is the problem. You define this operator<< as a function template, but the above friend declaration refers to somthing that is not a function template specialization (just an ordinary function of the appropriate type). You need to insert <T> into the friend delcaration: friend ostream& operator << <T>(ostream &output, const Complex<T> &complex); The C++ standard has an example in 14.5.3 paragraph 1 that explains this.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |