[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