[Botan-devel] Botan 1.5.12 and VS2005
Erik Loman
erik at surfright.nl
Fri Nov 24 15:35:50 EST 2006
Hello,
This is my first message to this mailing list. I have a few questions.
First I would like to give thumbs up for the work that has been put into
Botan to make it the library it is today. Really, really good work.
As I write software for the x86 and x64 Windows platform I use Visual Studio
2005 RTM to compile my projects.
Recently I stumbled upon a problem while compiling Botan 1.5.12 in Debug
mode.
VS2005 complains with error C2679:
--- snip ---
c:\program files\microsoft visual studio 8\vc\include\xutility(267) : error
C2679: binary '<' : no operator found which takes a right-hand operand of
type 'Botan::Pooling_Allocator::Memory_Block' (or there is no acceptable
conversion) could be 'built-in C++ operator<(void *, void *)' while trying
to match the argument list '(void *const ,
Botan::Pooling_Allocator::Memory_Block)'
c:\program files\microsoft visual studio
8\vc\include\algorithm(1992) : see reference to function template
instantiation 'bool
std::_Debug_lt<Botan::Pooling_Allocator::Memory_Block,_Ty>(_Ty1 &,const _Ty2
&,const wchar_t *,unsigned int)' being compiled
with
[
_Ty=void *,
_Ty1=Botan::Pooling_Allocator::Memory_Block,
_Ty2=void *
]
c:\program files\microsoft visual studio
8\vc\include\algorithm(2004) : see reference to function template
instantiation '_FwdIt
std::_Lower_bound<std::_Vector_iterator<_Ty,_Alloc>,void,__w64
int>(_FwdIt,_FwdIt,void &,_Diff *)' being compiled
with
[
_FwdIt=std::_Vector_iterator<Botan::Pooling_Allocator::Memory_Block,std::all
ocator<Botan::Pooling_Allocator::Memory_Block>>,
_Ty=Botan::Pooling_Allocator::Memory_Block,
_Alloc=std::allocator<Botan::Pooling_Allocator::Memory_Block>,
_Diff=__w64 int
]
d:\work\expirements\botan-1.5.12\botanlib\mem_pool.cpp(216) : see
reference to function template instantiation '_FwdIt
std::lower_bound<std::_Vector_iterator<_Ty,_Alloc>,void*>(_FwdIt,_FwdIt,void
&)' being compiled
with
[
_FwdIt=std::_Vector_iterator<Botan::Pooling_Allocator::Memory_Block,std::all
ocator<Botan::Pooling_Allocator::Memory_Block>>,
_Ty=Botan::Pooling_Allocator::Memory_Block,
_Alloc=std::allocator<Botan::Pooling_Allocator::Memory_Block>
]
--- snip ---
The compiler doesn't complain if I compile Botan 1.5.12 in Release mode.
After some heavy searching on the internet I found that there could to be a
problem with the STL include files that got shipped with VS2005 RTM. Search
with Google for _Debug_lt.
Can someone please confirm this is a problem related to VS2005 or even
better, provide a workaround so I can use 1.5.12 in my projects. I hope this
problem gets fixed before 1.5.x gets declared stable.
Thanks,
Erik
More information about the botan-devel
mailing list