[iostreams] Compilation errors with MSVC 8

When building CVS Boost with MSVC 8 beta 2 (http://lab.msdn.microsoft.com/vs2005/), it generated the errors below for iostreams. operations.hpp has a mixture of line endings, and symmetric_filter_adapter_impl is missing a return type, so I guess it's telling the truth! - KM F:\CVS\boost\boost/iostreams/operations.hpp : error C4335: Mac file format detected: please convert the source file to either DOS or UNIX format F:\CVS\boost\boost/type_traits/is_abstract.hpp(81) : warning C4800: 'unsigned int' : forcing value to bool 'true' or 'false' (performance warning) F:\CVS\boost\boost/type_traits/is_abstract.hpp(93) : see reference to class template instantiation 'boost::detail::is_abstract_imp2<T>' being compiled F:\CVS\boost\boost/iostreams/filter/symmetric_filter_adapter.hpp(303) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int F:\CVS\boost\boost/iostreams/filter/symmetric_filter_adapter.hpp(303) : error C2063: 'symmetric_filter_adapter_impl' : not a function F:\CVS\boost\boost/iostreams/filter/symmetric_filter_adapter.hpp(303) : error C2888: 'symmetric_filter_adapter<SymmetricFilter,Alloc>::symmetric_filter_adapter_impl symmetric_filter_adapter_impl' : symbol cannot be defined within namespace 'iostreams' F:\CVS\boost\boost/iostreams/filter/symmetric_filter_adapter.hpp(303) : fatal error C1903: unable to recover from previous error(s); stopping compilation

Keith MacDonald wrote:
When building CVS Boost with MSVC 8 beta 2 (http://lab.msdn.microsoft.com/vs2005/), it generated the errors below for iostreams. operations.hpp has a mixture of line endings, and symmetric_filter_adapter_impl is missing a return type, so I guess it's telling the truth!
- KM
F:\CVS\boost\boost/iostreams/operations.hpp : error C4335: Mac file format detected: please convert the source file to either DOS or UNIX
I'll check to make sure that this is fixed in the curent CVS. All the tests passed for me on VC8 before I checked in the most recent version.
format F:\CVS\boost\boost/type_traits/is_abstract.hpp(81) : warning C4800: 'unsigned int' : forcing value to bool 'true' or 'false' (performance warning) F:\CVS\boost\boost/type_traits/is_abstract.hpp(93) : see reference to class template instantiation 'boost::detail::is_abstract_imp2<T>' being compiled
Iostreams doesn't use is_abstract<>; this must be from another library.
F:\CVS\boost\boost/iostreams/filter/symmetric_filter_adapter.hpp(303) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int F:\CVS\boost\boost/iostreams/filter/symmetric_filter_adapter.hpp(303) : error C2063: 'symmetric_filter_adapter_impl' : not a function F:\CVS\boost\boost/iostreams/filter/symmetric_filter_adapter.hpp(303) : error C2888:
'symmetric_filter_adapter<SymmetricFilter,Alloc>::symmetric_filter_adapter_impl
symmetric_filter_adapter_impl' : symbol cannot be defined within namespace 'iostreams' F:\CVS\boost\boost/iostreams/filter/symmetric_filter_adapter.hpp(303)
I still haven't updated symmetric filter to handle non-blocking i/o, so it's currently broken. (I should say, I tried to updated it, but I haven't got it working yet) Best Regards, Jonathan

The warning from is_abstract.hpp may be because iostreams includes <boost/type_traits/is_convertible.hpp>. It's not your problem, but could be simply fixed by changing line 81 of is_abstract.hpp from this: BOOST_STATIC_ASSERT(sizeof(T)); to this: BOOST_STATIC_ASSERT(sizeof(T) != 0); - KM "Jonathan Turkanis" <technews@kangaroologic.com> wrote in message news:d5ilei$2t2$1@sea.gmane.org...
format F:\CVS\boost\boost/type_traits/is_abstract.hpp(81) : warning C4800: 'unsigned int' : forcing value to bool 'true' or 'false' (performance warning) F:\CVS\boost\boost/type_traits/is_abstract.hpp(93) : see reference to class template instantiation 'boost::detail::is_abstract_imp2<T>' being compiled
Iostreams doesn't use is_abstract<>; this must be from another library.

Keith MacDonald wrote:
The warning from is_abstract.hpp may be because iostreams includes <boost/type_traits/is_convertible.hpp>. It's not your problem, but could be simply fixed by changing line 81 of is_abstract.hpp from
Right, I forgot is_convertible uses is_abstract now. I'll fix operations.hpp Jonathan

The warning from is_abstract.hpp may be because iostreams includes <boost/type_traits/is_convertible.hpp>. It's not your problem, but could be simply fixed by changing line 81 of is_abstract.hpp from this:
BOOST_STATIC_ASSERT(sizeof(T));
to this:
BOOST_STATIC_ASSERT(sizeof(T) != 0);
I'll get that fixed. Strangely the warning doesn't show up in any of the type_traits tests, and seems to be very specific to certain instantiations <shrug>. John.
participants (3)
-
John Maddock
-
Jonathan Turkanis
-
Keith MacDonald