Hi - the questions about CINT are certainly welcome on this list, no doubt about it. I believe that Masa answered this question some time ago in http://pcroot.cern.ch/root-bugs/Enhancement?id=80 As full text of his answer is not available there I'm taking the freedom of forwarding it to this list. -Best, Pasha ----------------------------------------------------------------------------- From: Masaharu Goto <MXJ02154@nifty.ne.jp> To: murat@cdfsga.fnal.gov Subject: RE:Error: Can't call ostream::width() in Date: Sun, 24 Jan 1999 15:58:34 +0900 Pasha, I think I should add this QA to FAQ. There are several versions of iostream library support in CINT. 1) Old ANSI C++ 3.0 iostream version - precompiled This is the most common version which is used currently. Following platforms use this version. Win32 Visual C++, Symantec C++, old Borland C++ Linux gcc FreeBSD gcc BSDOS gcc HP-UX CC,aCC,gcc Solaris SUNWspro-CC,gcc AIX xlC,gcc SGI CC,gcc AlphaOSF cxx,gcc etc... 2) New template base iostream version - precompiled Template base iostream library is still on its' way of completeness. Major compilers provides template base iostream library, however, their implementation and ANSI/ISO comformance is not uniform. Currently, cint only supports template base precompiled iostream library for following platform Win32 C++ Builder Extending this support for other compiler is possible but not easy. Because of inconsistent compiler implementation, I must do some cut&try on particular platform. 3) Fake iostream version - interpreted There are a few compilers which precompiled iostream library is not supported. Linux,HP-UX,SGI,etc... KAI-CC, egcs Those compilers only have template base iostream library. As described above, support for template base iostream library is still on the way. For these environment, CINT provides fake iostream version which is interpreted. The fake version only supports very basic io functionality. No support for library details. Platforms you have problem with fall into category 3). GSI/EGCS and SGI/KCC. I'm sorry for inconvenience for the time being. Mashaaru Goto -------------------------------------------------------------------------- Dear ROOT developers, I'm having a problem with rebuilding CINT (and therefore - ROOT) in SGI/EGCS-1.1.1 configuration. THe build finishes successfully, however the following doesn't work: /data69/upgrade/root/v2_21_01/GCC_2_8>bin/root -b ******************************************* * * * W E L C O M E to R O O T * * * * Version 2.21/01 14 January 1999 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* CINT/ROOT C/C++ Interpreter version 5.13.83, Dec 2 1998 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] cout << setw(10) << 10.345 << endl; Error: Can't call ostream::width() in current scope FILE:iomanip.h LINE:76 Error: L Illegal operator for real number FILE:/var/tmp/aaaa0078a LINE:1 (class G__CINT_ENDL)273087296 *** Interpreter error recovered *** root [1] cout << setw(10) << 10 << endl; Error: Can't call ostream::width() in current scope FILE:iomanip.h LINE:76 *** Interpreter error recovered *** ----------------------------------------------------------------------------- Christopher A. Stevens writes: > Could someone else try this and let me know if you get the same result, > so I can find out if it's just me or not. > > root [1] int a=20; > root [2] cout << hex << a << endl; > 20 (not 14 hex as expected) > root [3] cout.setf(ios::hex); > root [4] cout << a << endl; > 20 (again not 14 hex as expected) > > Using ROOT 2.22/10 with CINT 5.14.10 under Redhat 6.0. > Thanks. > > P.S. If questions like this, about CINT, are not approved on this mail > list, let me know that too, so I can look elsewhere for an answer. > > -- > Christopher A. Stevens > Navigation/Data Reduction > Voice (301) 342-3181 x263 Fax (301) 342-4745
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:38 MET