09-07-2004 05:23 AM
we have a project here that runs on HP-UX 11.00 (PA-RISC) and also on Solaris and Windows. Until the present version, C++ code would be compiled under HP-UX using the classic C++ library; now we want to move to the new C++ library and have a bit of trouble with some class members not present anymore in the new iostream library. The main offender is streambuf.base(), which doesn't seem to exist in the new library. Is there any equivalent for it in the standard C++ library that we could use? Basically, we have a class that inherits from streambuf and manipulates some of its protected members (like base()). Are there any other things I should know about this transition? Thanks in advance.
09-07-2004 05:39 AM
look at the link:
09-07-2004 05:46 AM
Anyway, is there some way to mix code that uses classic iostreams with code that uses standard C++? On Solaris this seems to be possible (standard C++ support is on by default and you can specify -library=iostream to link with the old library), but as far as I understand from the documentation, on HP you can either:
1) use classic iostreams and not have namespace std, newer STL and other standard C++ stuff; I don't think we can do this, since we have quite a significant amount of new code that uses STL and std:: classes.
2) use new iostreams and standard C++ features. This would require getting rid of dependencies on old iostreams.
Are there any other options? Somebody reported on CXX-DEV that they could mix -AA code that was using new iostreams with old code that didn't use streams at all, but I'd be interested in the opposite - mix code compiled with -AP using old iostreams with code that uses standard C++ (and is compiled with -AA) but doesn't use iostreams at all.