
Very good call - precisely the correct fix! I was never able to see any test results from VC 8.0 since the library failed to build because of some issue with VC 8.0 and spirit 1.8. I believe this issue has since been resolved but since then testing hasn't been done pending final release of 1.32. I'm wondering if this is the only issue in relation to VC 8.0? Were you able to run all the tests and build all the libraries? If so what kind of results did you get? The library pass 100% with VC 7.1 (no suprise because that's what I use here). I would hope that accommodating VC 8.0 would entail only the most minimal adjustments. Any insight you can give me here would be interesting. Also how does one aquire his own copy of vc 8.0 beta - is it worth it?. Personally I hate dealing with microsoft betas. I give the feed back on problems and the release version has all the same issues. Robert Ramey "Marvin H. Sielenkemper" <sielenk@gmx.de> wrote in message news:cndnir$20f$1@sea.gmane.org...
I tried to compile the current boost libraries with VC8.0 beta. It stopped and reported the following error: ---- SNIP ---- C:\Code\boost\boost\archive\iterators\xml_escape.hpp(47) : error C2440: 'type cast' : cannot convert from 'const wchar_t *' to 'std::_String_const_iterator<_Elem,_Traits,_Alloc>' with [ _Elem=wchar_t, _Traits=std::char_traits<wchar_t>, _Alloc=std::allocator<wchar_t> ] No constructor could take the source type, or constructor overload resolution was ambiguous C:\Code\boost\boost\archive\impl\xml_woarchive_impl.ipp(108) : see reference to function template instantiation 'boost::archive::iterators::xml_escape<Base>::xml_escape<const _Elem*>(T)' being compiled with [
Base=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allo cator<wchar_t>>,
_Elem=wchar_t, T=const wchar_t * ] C:\Program Files\Microsoft Visual Studio 8\VC\include\xmemory(135)
:
while compiling class template member function 'void boost::archive::xml_woarchive_impl<Archive>::save(const std::wstring &)' with [ Archive=boost::archive::xml_woarchive ] C:\Code\boost\boost\archive\xml_woarchive.hpp(84) : see reference to class template instantiation 'boost::archive::xml_woarchive_impl<Archive>' being compiled with [ Archive=boost::archive::xml_woarchive ] ---- SNIP ----
The problem seems to be the more restrictive STL implementation which doesn't allow/use pointers as wstring iterators.
The following change fixed the problem for me:
Index: boost/archive/impl/xml_woarchive_impl.ipp =================================================================== RCS file: /cvsroot/boost/boost/boost/archive/impl/xml_woarchive_impl.ipp,v retrieving revision 1.5 diff -u -w -b -r1.5 xml_woarchive_impl.ipp --- boost/archive/impl/xml_woarchive_impl.ipp 7 Nov 2004 21:27:53 -0000 1.5 +++ boost/archive/impl/xml_woarchive_impl.ipp 16 Nov 2004 08:58:47 -0000 @@ -105,8 +105,8 @@ void xml_woarchive_impl<Archive>::save(const std::wstring & ws){ typedef iterators::xml_escape<std::wstring::const_iterator> xmbtows; std::copy( - xmbtows(BOOST_MAKE_PFTO_WRAPPER(ws.data())), - xmbtows(BOOST_MAKE_PFTO_WRAPPER(ws.data() + ws.size())), + xmbtows(BOOST_MAKE_PFTO_WRAPPER(ws.begin())), + xmbtows(BOOST_MAKE_PFTO_WRAPPER(ws.end())), boost::archive::iterators::ostream_iterator<wchar_t>(os) ); }
Regards
Marvin H. Sielenkemper, PROVISIO GmbH
_______________________________________________ Unsubscribe & other changes: