Hi Justin,
You are most likely using a distribution where the dictionary for
std::string has not been built and/or not loaded yet. You would need to do:
cd $ROOTSYS;
gmake cintdlls
and make sure to do (sometimes in the session):
#include <string>
Cheers,
Philippe
-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Justin Findlay
Sent: Thursday, May 29, 2003 7:57 PM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] string streams
Hi,
I would like to know how one can use stringstream objects. If I do this,
{
#include <string>
#include <sstream>
using namespace std;
int i = 1;
double d = 1.1;
string s = "asdf";
ostringstream osstr;
osstr << i << " " << d << " " << s << endl;
}
then I get
Error: operator<< not defined for basic_ostream<char,char_traits<char> >
FILE:sstream.cpp LINE:12
Of course, this is just a CINT limitation, but it would be very useful to
create a TSstream class which can concatinate and extract ROOT strings
like C++ strings. It seems the only way one can use sstream functionality
now is by stringing characters into a C++ string and converting it into a
ROOT TString or TCut object at the last step (assuming the code has been
compiled and correctly linked against sstream). As it is now I am using
sprintf() with its obvious static limitations.
Justin
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET