DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20643>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20643

Use preprocessor directives for using the best choice of iostreams

           Summary: Use preprocessor directives for using the best choice of
                    iostreams
           Product: Xerces-C++
           Version: 2.3.0
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Enhancement
          Priority: Other
         Component: Miscellaneous
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


In StdOutFormatTarget.cpp old-style iostreams (#include <iostream.h>) are used to 
support non-ANSI C++ compliant compilers (cf. Rev 1.4 note). Wouldn't it be better to 
use preprocessor directives instead?

Not only does VC++ 7.x emit a warning when old-style iostreams are used, but you also 
end up with a dependency on the run-time library MSVCI70.DLL that you wouldn't need 
otherwise. The ANSI compliant iostreams are implemented in MSVCP70.DLL, and you don't 
always want to ship both DLLs when distributing an application that is otherwise only 
using the latter DLL.

This works with VC++ 7.x, but tests for more ANSI C++ compliant compilers should of 
course be added.

#if (_MSC_VER >= 1300) // Perhaps use 1200 instead; VC6 supports ANSI C++ compliant 
iostreams, doesn't it?
// Use ANSI C++ compliant iostreams
#include <iostream>
using namespace std;
#else
// Use old-style iostreams
#include <iostream.h>
#endif

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to