Boost logo

Boost :

From: Jonathan Turkanis (technews_at_[hidden])
Date: 2004-12-10 13:00:36


Joaquín Mª López Muñoz wrote:
> Hi Jonathan, some quick observations:
>
> * Some of your includes still refer to <boost/io/...> instead of
> <boost/iostreams/...> (most notably, the examples). Am I missing
> something?

Thanks! It's hard to believe I didn't catch all these. If you find any not in
the examples, please point them out to me.

> * In boost/iostreams/detail/buffer.hpp, you can take advantage
> of boost/detail/allocator_utilities.hpp to do your allocator rebinding
> for both compliant and defective compilers. So, instead of
>
> #ifndef BOOST_NO_MEMBER_TEMPLATE
> typedef typename Alloc::template rebind<Ch>::other
> allocator_type;
> #else
> typedef mpl::if_<
> is_same<typename Alloc::value_type, Ch>,
> Alloc,
> std::allocator<Ch>
> >::type
> allocator_type;
> #endif
>
> you can write:
>
> #include <boost/detail/allocator_utilities.hpp>
>
> ...
>
> typedef typename
> boost::detail::allocator::rebind_to<Alloc,Ch>::type
> allocator_type;
>
> (BTW, it is not BOOST_NO_MEMBER_TEMPLATE but
> BOOST_NO_MEMBER_TEMPLATES.)

This typo must have crept in some time after I stopped testing on VC6

> * Seems to me that with some moderate effort the library could
> be made to work more or less with MSVC++ 6.0. If you want me
> to try to help a little wrt to this, please tell me so and I'll send
> you more questions/stuff via private email.

I actually spent a lot of time making the library compile on VC6. It was only
near the end of development, when I got rid of the object generator functions
make_sink, make_source, etc. in favor of a single function adapt, that I ran
into internal errors on VC6 that I couldn't fix.

Unfortunately, I found not having to support VC6 somewhat libertaing and removed
some of the workarounds when they seemed to get in the way.

My current plan is to add a defect macro NO_SMART_ADAPTER_SUPPORT which applies
to VC6.0 which will bypass the stuff that gave VC6.0 trouble.

However, even when the whole library compiled under VC6.0, both it and to a
lesser extent VC7.0 had runtime failures with global optimization enabled. I'm
not optimistic about being able to fix that.

Perhaps after I restore some of the VC6 workarounds and get the core of the
library working, you can help me add support for the adapters. Thanks for
offering to help!

> Joaquín M López Muñoz
> Telefónica, Investigación y Desarrollo

Jonathan


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