Hello John,
John Maddock wrote on 3/08/2005 at 2:43 a.m.:
I've just tried building it with the July build of Visual Studio
2005/VC8 , and it failed to update 8 targets. bjam output is below...
bjam "-sTOOLS=vc-8_0" "-sBUILD=debug release <runtime-link>dynamic
<threading>multi" --prefix=..\boost --builddir=..\boost-obj
This is getting ridiculous, seems like you can't use any part of the
std lib with that compiler without having to work around thousands
of warnings.
I guess calling std::equal is dangerous if
you don't check the lengths of the sequences first (I do though!),
and in any case it shouldn't be an error!
IMHO these errors aren't due to deprecation, but rather to "ambiguous
call to overloaded function".
Can you see if the following snippet will compile:
const char* p1, *p2, *p3;
std::equal(p1, p2, p3);
It doesn't. Here is the output:
C:\Program Files\vs8\VC\include\xutility(2649) : warning C4996: 'std::_Equal' was declared deprecated
C:\Program Files\vs8\VC\include\xutility(2636) : see declaration of 'std::_Equal'
Message: 'You have used a std:: construct that is not safe. See documentation on how to use the Safe Standard C++ Library'
.\board.cpp(108) : see reference to function template instantiation 'bool std::equal(_InIt1,_InIt1,_InIt2)' being compiled
with
[
_InIt1=const char *,
_InIt2=const char *
]
C:\Program Files\vs8\VC\include\xutility(2640) : error C2668: 'std::_Equal' : ambiguous call to overloaded function
C:\Program Files\vs8\VC\include\xutility(2622): could be 'bool std::_Equal(_InIt1,_InIt1,_InIt2,std::random_access_iterator_tag,std::_Range_checked_iterator_tag)'
with
[
_InIt2=const char *,
_InIt1=const char *
]
C:\Program Files\vs8\VC\include\xutility(2578): or 'bool std::_Equalstd::random_access_iterator_tag,std::random_access_iterator_tag::_Iter_random_cat>(const char *,const char *,const char *,_InItCats,std::_Range_checked_iterator_tag)'
with
[
_InItCats=std::_Iter_random_helperstd::random_access_iterator_tag,std::random_access_iterator_tag::_Iter_random_cat
]
while trying to match the argument list '(const char *, const char *, const char *, std::_Iter_random_helperstd::random_access_iterator_tag,std::random_access_iterator_tag::_Iter_random_cat, std::_Range_checked_iterator_tag)'
C:\Program Files\vs8\VC\include\xutility(2649) : see reference to function template instantiation 'bool std::_Equalstd::random_access_iterator_tag,std::random_access_iterator_tag::_Iter_random_cat>(_InIt1,_InIt1,_InIt2,_InItCats,std::_Unchecked_iterator_tag)' being compiled
with
[
_InIt2=const char *,
_InIt1=const char *,
_InItCats=std::_Iter_random_helperstd::random_access_iterator_tag,std::random_access_iterator_tag::_Iter_random_cat
]
.\board.cpp(108) : see reference to function template instantiation 'bool std::equal(_InIt1,_InIt1,_InIt2)' being compiled
with
[
_InIt1=const char *,
_InIt2=const char *
]
Best regards,
Oleg.