From: "Mostyn Lee" Newsgroups: comp.lang.c++,comp.os.msdos.djgpp Subject: passing istringstream as istream in param Lines: 43 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2615.200 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 Message-ID: Date: Fri, 8 Sep 2000 10:26:19 +0800 NNTP-Posting-Host: 203.24.93.75 X-Complaints-To: abuse AT telstra DOT net X-Trace: nsw.nnrp.telstra.net 968379915 203.24.93.75 (Fri, 08 Sep 2000 13:25:15 EST) NNTP-Posting-Date: Fri, 08 Sep 2000 13:25:15 EST Organization: Customer of Telstra Big Pond Direct To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com i used flex to generate a parser c++ class, and this class requires a istream * as its parameter yyFlexLexer::yyFlexLexer( istream* arg_yyin, ostream* arg_yyout ) i need to parse from a character buffer, and have created a istringstream. the object will not accept the istringstream as a valid type parameter. i am using visual c++ 6.0 with a GNU flex generated class #include #include #include // .... using namespace std; // .... string constructstring = ReturnsAString(); istringstream lexingstream(constructstring); lexingstream << constructstring; yyFlexLexer myyyFlexLexer(&lexingstream, std::cout); // .... gets the error : error C2664: '__thiscall yyFlexLexer::yyFlexLexer(class istream *,class ostream *)' : cannot convert parameter 1 from 'class std::basic_istream > *' to 'class istream *' i have tried several things : i have tried to declare a istream to copy the data into, but i always get an "ambiguous symbol `istream` " error : i have tried using various `using` and direct (std::istream) methods, but all have errors do I need some sort of casting? am I #including something wrong? why cant I just declare, istream streamname;