From: "Chris Van Extergem" Newsgroups: comp.os.msdos.djgpp References: Subject: Re: Deriving from class streambuf Lines: 57 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2919.6600 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600 Message-ID: <1CuP6.2632$X03.206424@afrodite.telenet-ops.be> Date: Fri, 25 May 2001 15:10:53 GMT NNTP-Posting-Host: 213.224.14.209 X-Complaints-To: abuse AT pandora DOT be X-Trace: afrodite.telenet-ops.be 990803453 213.224.14.209 (Fri, 25 May 2001 17:10:53 MET DST) NNTP-Posting-Date: Fri, 25 May 2001 17:10:53 MET DST Organization: Telenet Internet To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Chris Van Extergem" wrote in message news:n6uP6.2496$X03 DOT 195337 AT afrodite DOT telenet-ops DOT be... > I copied some code from a book, it compiles and (kinda) works with VC++ 6.0, > but when I want to compile with DJGPP, I get following error : > > winstream.cpp(8) Error: no matching function for call to > 'streambuf::streambuf(char *&, winstrbuf::{anonymous enum}) > > on this line : > > winstrbuf::winstrbuf(int y,int x,int h,int w,int bx,int > vis):streambuf(pbuf=new char[bufsize*2],bufsize),curw(y,x,h,w,bx,vis) > > I know where the winstrbuf::{anonymous enum} part comes from : > enum {bufsize=1024}; in my class declaration, so that's not a problem, I > guess > > When I look at streambuf.h, I can only find one constructor for streambuf : > streambuf(int flags=0); > > When I look at streamb.h (for VC++ 6.0), I find : > streambuf(); > streambuf(char *,int); > > So that explains why it compiles in VC++ 6.0 > > My question (at last, I hear you say :) is this : who is right ? I know M$ > is known for producing the least conforming compiler, but here it seems the > author of DJGPP got a bit lazy and left out the second constructor. Does > the standard say anything about this ? > Should I add this constructor myself ? Should I just adjust my code ? If > yes, how ? I adjusted the code, so the winstrbuf c'tor calls the default c'tor for streambuf and I do the allocation of the pbuf in the body of the function. This seems to work, but I still would like some answers for the other questions. Another question, a bit related to this one : when I compile this on VC++ 6.0, it compiles OK like I said earlier, but I don't see much output. What I see is some windows on the screen, but when the code gets to the point of inserting something into the winstream object, nothing is 'printed' (well, that's not entirely true, sometimes something gets printed, but I don't know yet under wich conditions), yet getting the same program (with above modifications) running under DJGPP, it displays all the text that it's supposed to display. I realise this is really OT here, but does anyone have any ideas ? TIA, Chris