From: Jonathan Turkanis (technews_at_[hidden])
Date: 2004-09-06 18:46:48


"Neal Becker" <ndbecker2_at_[hidden]> wrote in message
news:chiqs5$3u1$1_at_sea.gmane.org...

There are two patches that have already been posted which I would like you to
try. I didn't patch the main distribution because I wanted to keep it frozen
during the review.

First, for boost/io/operations.hpp:

---------

--- operations.hpp 1 Sep 2004 01:48:40 -0000 1.37
+++ operations.hpp 1 Sep 2004 01:48:49 -0000
@@ -19,6 +19,7 @@
 #if !defined(BOOST_NO_STD_LOCALE)
 # include <locale> // neeed for boost::io::imbue.
 #endif
+#include <boost/io/detail/assert_convertible.hpp>
 #include <boost/io/detail/dispatch.hpp>
 #include <boost/io/detail/iterator_traits.hpp>
 #include <boost/io/detail/ios_traits.hpp>
@@ -103,7 +104,7 @@

     template<typename T>
     static void putback(T&, BOOST_IO_CHAR_TYPE(T))
- { BOOST_STATIC_ASSERT(false); }
+ { BOOST_IO_ASSERT_CONVERTIBLE(BOOST_IO_CATEGORY(T), peekable_tag); }
 };

---------

next, for boost/io/detail/resolve.hpp

---------

--- resolve.hpp 31 Aug 2004 18:02:51 -0000 1.4
+++ resolve.hpp 1 Sep 2004 01:13:32 -0000
@@ -35,7 +35,7 @@
     BOOST_STATIC_ASSERT(!is_const<T>::value);
     #ifndef BOOST_IO_NO_FULL_SMART_ADAPTER_SUPPORT
         template<typename U>
- struct get_result_type : U::result_type<Mode, Ch> { };
+ struct get_result_type : U::template result_type<Mode, Ch> { };
     #else
         template<typename U>
         struct get_result_type {

---------

> Adding #include <iostream> fixes this problem.

What file did you add the include to? I'm trying to get by with <iosfwd> and
<ios> wherever possible.

Thanks for the report. Let me know if it works with the above patches.

Jonathan