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