www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/09/07/22:30:54

From: "Mostyn Lee" <mostyn AT ibc DOT com DOT au DOT SPAM>
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: <f6Yt5.55$t42.3484@nsw.nnrp.telstra.net>
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 <iostream>
#include <string>
#include <sstream>
// ....
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<char,struct std::char_traits<char> > *' 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;



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019