#if
defined(_MSC_VER) && !defined(__MWERKS__) && (_MSC_VER < 1300)// VC60 workaround: built-in reverse_iterator has two template parameters, Dinkumware only has one
typedef reverse_bidirectional_iterator<unsigned int *, unsigned int> RevIt;
#else
typedef reverse_iterator<unsigned int *> RevIt;
#endif
If compiled if #if 1 || ..., to emulate VC60 - that part compiles. (There's a similar ref in ida.cpp, fixable in the same way). This could probably be fixed by a more precise test for _MSC_VER to differentiate between VC 7.0 and VC 7.1 I guess. Anybody know what _MSC_VER is for 7.1? (Run CL /? at the command prompt after running VCVARS.BAT and check the version...)
2 -
c:\tmp\cryptopp521\simple.h(179) : fatal error C1001: INTERNAL COMPILER
ERROR
(compiler file 'msc1.cpp',
line 2844)
Please choose
the Technical Support command on the Visual C++
Help menu, or open the
Technical Support help file for more information
The second one is harder to fix in an easy manner it appears. It should be noted that it's only for the DLL part, so it appears to have to do with the compiler having problems with all those __declspec(novtable) and __declspec(dllexport) that the templates will generate. There may, or may not, be a fix available for VC 7.0, but it's not easily available. Can this be fixed in a way to be compatible with both versions? It would appear that the use of CRYPTOPP_DLL and CRYPTOPP_NOVTABLE is rather promiscuous...
It's possible to use it appears, if not compiled for DLL usage with the two patches above in zdeflate.cpp and ida.cpp, at leat it compiles... Unfortunately I've tried 5.1, which compiles - but the first thing happening was I got bitten by a bug that was fixed in 5.2.1...
Regards,
Svante