
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