Boost logo

Boost :

From: Robert Ramey (ramey_at_[hidden])
Date: 2004-11-17 12:27:21


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_at_[hidden]> wrote in message
news:cndnir$20f$1_at_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:
http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk