From a146b551171e493aa2f0f5e27fa2ca6c9631d91a Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Tue, 28 May 2002 20:25:51 +0000 Subject: [PATCH] Workaround BOOST_MSVC_STD_ITERATOR misconfiguration; add MSVC6 specificity [SVN r14047] --- include/boost/detail/iterator.hpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/include/boost/detail/iterator.hpp b/include/boost/detail/iterator.hpp index c485a4d..9833146 100644 --- a/include/boost/detail/iterator.hpp +++ b/include/boost/detail/iterator.hpp @@ -62,14 +62,10 @@ # include # include -# if defined(BOOST_MSVC_STD_ITERATOR) +# if defined(BOOST_MSVC_STD_ITERATOR) && !defined(__SGI_STL_PORT) # include # include # include -# if 0 && defined(__ICL) // Re-enable this to pick up the Intel fixes where they left off -# include -# include -# endif # endif @@ -110,7 +106,7 @@ template <> struct iterator_traits_select typedef std::ptrdiff_t difference_type; typedef std::random_access_iterator_tag iterator_category; typedef Ptr pointer; -#ifdef BOOST_MSVC +#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 // Keeps MSVC happy under certain circumstances. It seems class template default // arguments are partly instantiated even when not used when the class template // is the return type of a function template. @@ -183,7 +179,7 @@ struct bad_output_iterator_select }; # endif -# if defined(BOOST_MSVC_STD_ITERATOR) +# if defined(BOOST_MSVC_STD_ITERATOR) && !defined(__SGI_STL_PORT) // We'll sort iterator types into one of these classifications, from which we // can determine the difference_type, pointer, reference, and value_type @@ -291,7 +287,7 @@ template <> struct iterator_traits_select template struct traits { -# if defined(BOOST_MSVC_STD_ITERATOR) +# if defined(BOOST_MSVC_STD_ITERATOR) && !defined(__SGI_STL_PORT) typedef msvc_traits_select<( msvc_iterator_classification::value )>::template traits_ inner_traits;