From 37aee7c13be6f70d933eecb86be3c4db748ce4d4 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Thu, 13 Dec 2001 14:34:11 +0000 Subject: [PATCH] Re-enabled some STATIC_ASSERTs for MSVC, using bitwise operators to avoid ICEs. [SVN r12030] --- include/boost/iterator_adaptors.hpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/include/boost/iterator_adaptors.hpp b/include/boost/iterator_adaptors.hpp index 35b1c56..1cba09a 100644 --- a/include/boost/iterator_adaptors.hpp +++ b/include/boost/iterator_adaptors.hpp @@ -800,22 +800,20 @@ struct iterator_adaptor : private: BOOST_STATIC_CONSTANT(bool, is_input_or_output_iter = (boost::is_convertible::value - || boost::is_convertible::value)); + | boost::is_convertible::value)); // Iterators should satisfy one of the known categories BOOST_STATIC_ASSERT(is_input_or_output_iter); -#if !defined(BOOST_MSVC) // Iterators >= ForwardIterator must produce real references // as required by the C++ standard requirements in Table 74. - BOOST_STATIC_CONSTANT(bool, forward_iter_with_real_reference = - (!boost::is_convertible::value - || boost::is_same::value - || boost::is_same::value)); + BOOST_STATIC_CONSTANT(bool, forward_iter_with_real_reference + = ((!boost::is_convertible::value) + | boost::is_same::value + | boost::is_same::value)); // This check gives incorrect results in iter_traits_gen_test.cpp BOOST_STATIC_ASSERT(forward_iter_with_real_reference); -#endif public: iterator_adaptor() { }