I've just checked in the latest Crypto++ source code to CVS. It should compile without errors now on Visual Studio 2005 beta 2, but may still trigger some warnings on it. It can also be targetted for x86-64 now, but I haven't checked in the project files because I'm not sure the project files can still be used by Visual Studio 2003.

----- Original Message ----- From: "Alex Bulis" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, July 11, 2005 11:45 AM
Subject: Crypto++ 5.2.1 compilation error on VS 2005 beta 2


Hi,
crypto++ 5.2.1 is successfuly compiling on my Visual C++ 6.0 platform, and now, when testing it on Visual Studio 2005 beta 2, I run into the 2 following errors:

------ Build started: Project: Cryptopp, Configuration: Debug Win32 ------
Compiling...
zdeflate.cpp
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(237) :
error C2664: 'bool CryptoPP::FreqLessThan::operator ()(const
CryptoPP::HuffmanNode &,const CryptoPP::HuffmanNode &) const' : cannot
convert parameter 2 from 'int' to 'const CryptoPP::HuffmanNode &'
      Reason: cannot convert from 'int' to 'const CryptoPP::HuffmanNode'
      No constructor could take the source type, or constructor
overload resolution was ambiguous
      C:\Program Files\Microsoft Visual Studio
8\VC\include\algorithm(1570) : see reference to function template
instantiation 'bool std::_Debug_lt_pred<_Pr,_Ty,T>(_Pr,_Ty1,_Ty2,const
wchar_t *,unsigned int)' being compiled
      with
      [
          _Pr=CryptoPP::FreqLessThan,
          _Ty=int,
          T=CryptoPP::HuffmanNode,
          _Ty1=int,
          _Ty2=CryptoPP::HuffmanNode
      ]
      C:\Program Files\Microsoft Visual Studio
8\VC\include\algorithm(1584) : see reference to function template
instantiation '_FwdIt
std::_Upper_bound<_FwdIt,_Ty,std::iterator_traits<_Iter>::difference_type,_Pr>(_FwdIt,_FwdIt,const
_Ty &,_Pr,_Diff *)' being compiled
      with
      [
          _FwdIt=CryptoPP::HuffmanNode *,
          _Ty=int,
          _Iter=CryptoPP::HuffmanNode *,
          _Pr=CryptoPP::FreqLessThan,
_Diff=std::iterator_traits<CryptoPP::HuffmanNode *>::difference_type
      ]
      .\zdeflate.cpp(115) : see reference to function template
instantiation '_FwdIt
std::upper_bound<CryptoPP::HuffmanNode*,int,CryptoPP::FreqLessThan>(_FwdIt,_FwdIt,const
_Ty &,_Pr)' being compiled
      with
      [
          _FwdIt=CryptoPP::HuffmanNode *,
          _Ty=int,
          _Pr=CryptoPP::FreqLessThan
      ]
zinflate.cpp
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(237) :
error C2664: 'bool CryptoPP::CodeLessThan::operator ()(const
CryptoPP::HuffmanDecoder::code_t,const
CryptoPP::HuffmanDecoder::CodeInfo &)' : cannot convert parameter 1
from 'CryptoPP::HuffmanDecoder::CodeInfo' to 'const
CryptoPP::HuffmanDecoder::code_t'
      No user-defined-conversion operator available that can perform
this conversion, or the operator cannot be called
      C:\Program Files\Microsoft Visual Studio
8\VC\include\algorithm(1570) : see reference to function template
instantiation 'bool std::_Debug_lt_pred<_Pr,_Ty,T>(_Pr,_Ty1,_Ty2,const
wchar_t *,unsigned int)' being compiled
      with
      [
          _Pr=CryptoPP::CodeLessThan,
          _Ty=CryptoPP::HuffmanDecoder::code_t,
          T=CryptoPP::HuffmanDecoder::CodeInfo,
          _Ty1=CryptoPP::HuffmanDecoder::code_t,
          _Ty2=CryptoPP::HuffmanDecoder::CodeInfo
      ]
      C:\Program Files\Microsoft Visual Studio
8\VC\include\algorithm(1584) : see reference to function template
instantiation '_FwdIt std::_Upper_bound<_FwdIt,_Ty,__w64
int,_Pr>(_FwdIt,_FwdIt,const _Ty &,_Pr,_Diff *)' being compiled
      with
      [

_FwdIt=std::_Vector_const_iterator<CryptoPP::HuffmanDecoder::CodeInfo,CryptoPP::AllocatorWithCleanup<CryptoPP::HuffmanDecoder::CodeInfo>>,
          _Ty=CryptoPP::HuffmanDecoder::code_t,
          _Pr=CryptoPP::CodeLessThan,
          _Diff=__w64 int
      ]
      .\zinflate.cpp(148) : see reference to function template
instantiation '_FwdIt
std::upper_bound<std::_Vector_const_iterator<_Ty,_Alloc>,CryptoPP::HuffmanDecoder::code_t,CryptoPP::CodeLessThan>(_FwdIt,_FwdIt,const
unsigned int &,_Pr)' being compiled
      with
      [

_FwdIt=std::_Vector_const_iterator<CryptoPP::HuffmanDecoder::CodeInfo,CryptoPP::AllocatorWithCleanup<CryptoPP::HuffmanDecoder::CodeInfo>>,
          _Ty=CryptoPP::HuffmanDecoder::CodeInfo,

_Alloc=CryptoPP::AllocatorWithCleanup<CryptoPP::HuffmanDecoder::CodeInfo>,
          _Pr=CryptoPP::CodeLessThan
      ]
Generating Code...
Cryptopp - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


I know Visual Studio 2005 is not yet suported (it is just a beta,
after all...), but still I thought it's worth checking with others if
someone has seen these errors before and if there's a quick workaround
for that.

Thanks
Alex



Reply via email to