Hi,
This might be more a C++ question, but I'm trying to have one variable
store the output stream for both StdoutStream and FileOutputStream. I do
this:
shared_ptr<OutputStream> f;
if (fn == "stdout")
f.reset(new StdoutStream());
else
FileOutputStream::Open(fn, false, &f);
As is, the code does not work because Open expects
shared_ptr<FileOutputStream>. If I do a cast:
FileOutputStream::Open(fn, false,
&(dynamic_pointer_cast<FileOutputStream>(f)));
I get an error: taking address of temporary [-fpermissive]
What would be a good way of having one variable for both branches of the if
statement?
Thanks!
Rares