Support for old iostreams (e.g. <iostream.h>) was removed in Microsoft Visual C++ 7.1 (a.k.a. VS.NET 2003). Only Standard C++ iostreams (e.g. <iostream>) are supported with VS.NET 2003. This prevented me from building ROOT 3.05.05 using vc 7.1, since ROOT still depends on old iostreams. When I configured ROOT for both "win32" and "win32gdk", the build aborted early while compiling cint/src/longif.cxx because cint/include/longif.h includes iostream.h at line 55. I noticed these two lines in RConfig.h in the __HP_aCC section: # define R__ANSISTREAM /* ANSI C++ Standard Library conformant */ # define R__TMPLTSTREAM /* iostream implemented with templates */ I tried defining R__TMPLTSTREAM in the _MSC_VER section of RConfig.h, but I received the same error when compiling cint/src/longif.cxx. I noticed around line 55 in longif.h that if G__NEWSTDHEADER is defined, then <iostream> is included instead of <iostream.h>. This hinted that ROOT might support Standard C++ iostreams at some level. However, I know that the "G__" macros are internal to cint, and that configuring the ROOT sources should only be done with the "R__" macros in RConfig.h, so it wasn't clear to me how to "turn on" support for Standard C++ iostreams. My question is, does ROOT support Standard C++ iostreams on any platform (I think the answer is probably yes)? If so, then how do I configure ROOT to use Standard C++ iostreams for vc 7.1? One (perhaps major) problem is that cint/src/vcstrm.cxx (which, I believe, is cint's wrapper around the system's iostream implementation) appears to still use old iostreams. Does this mean that a new iostream wrapper needs to be created (perhaps vc71strm.cxx implemented in a new folder cint/lib/vc71stream/)? This looks like a lot of work. Thank you for helping me build ROOT using vc 7.1. Warmest regards, Matt -- Dr. Matthew D. Langston SLD, Stanford Linear Accelerator Center langston@SLAC.Stanford.EDU
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET