From 45c0a299f59df7493cfdc70a34b5e35670b1505f Mon Sep 17 00:00:00 2001 From: Thomas Witt Date: Tue, 10 Dec 2002 19:43:45 +0000 Subject: [PATCH] More vc6/7 fixes. [SVN r762] --- include/boost/iterator/iterator_adaptors.hpp | 40 +++++++++++--------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/include/boost/iterator/iterator_adaptors.hpp b/include/boost/iterator/iterator_adaptors.hpp index da03cf4..3ebded2 100644 --- a/include/boost/iterator/iterator_adaptors.hpp +++ b/include/boost/iterator/iterator_adaptors.hpp @@ -34,7 +34,7 @@ namespace boost { template struct base { -#ifdef BOOST_MSVC +#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) // Disable enable if for MSVC typedef T type; @@ -167,6 +167,12 @@ namespace boost { { }; +#if BOOST_WORKAROUND(BOOST_MSVC, <=1200) +#define BOOST_ARG_DEP_TYPENAME +#else +#define BOOST_ARG_DEP_TYPENAME typename +#endif + template inline @@ -178,8 +184,8 @@ namespace boost { { // For those compilers that do not support enable_if BOOST_STATIC_ASSERT((detail::is_interoperable< - typename Base1::derived_t, - typename Base2::derived_t >::value)); + BOOST_ARG_DEP_TYPENAME Base1::derived_t, + BOOST_ARG_DEP_TYPENAME Base2::derived_t >::value)); return iterator_core_access::equal(lhs.derived(), rhs.derived()); @@ -196,8 +202,8 @@ namespace boost { { // For those compilers that do not support enable_if BOOST_STATIC_ASSERT((detail::is_interoperable< - typename Base1::derived_t, - typename Base2::derived_t >::value)); + BOOST_ARG_DEP_TYPENAME Base1::derived_t, + BOOST_ARG_DEP_TYPENAME Base2::derived_t >::value)); return !iterator_core_access::equal(lhs.derived(), rhs.derived()); @@ -214,8 +220,8 @@ namespace boost { { // For those compilers that do not support enable_if BOOST_STATIC_ASSERT((detail::is_interoperable< - typename Base1::derived_t, - typename Base2::derived_t >::value)); + BOOST_ARG_DEP_TYPENAME Base1::derived_t, + BOOST_ARG_DEP_TYPENAME Base2::derived_t >::value)); return iterator_core_access::distance_to(lhs.derived(), rhs.derived()) > 0; @@ -232,8 +238,8 @@ namespace boost { { // For those compilers that do not support enable_if BOOST_STATIC_ASSERT((detail::is_interoperable< - typename Base1::derived_t, - typename Base2::derived_t >::value)); + BOOST_ARG_DEP_TYPENAME Base1::derived_t, + BOOST_ARG_DEP_TYPENAME Base2::derived_t >::value)); return iterator_core_access::distance_to(lhs.derived(), rhs.derived()) < 0; @@ -250,8 +256,8 @@ namespace boost { { // For those compilers that do not support enable_if BOOST_STATIC_ASSERT((detail::is_interoperable< - typename Base1::derived_t, - typename Base2::derived_t >::value)); + BOOST_ARG_DEP_TYPENAME Base1::derived_t, + BOOST_ARG_DEP_TYPENAME Base2::derived_t >::value)); return iterator_core_access::distance_to(lhs.derived(), rhs.derived()) >= 0; @@ -268,8 +274,8 @@ namespace boost { { // For those compilers that do not support enable_if BOOST_STATIC_ASSERT((detail::is_interoperable< - typename Base1::derived_t, - typename Base2::derived_t >::value)); + BOOST_ARG_DEP_TYPENAME Base1::derived_t, + BOOST_ARG_DEP_TYPENAME Base2::derived_t >::value)); return iterator_core_access::distance_to(lhs.derived(), rhs.derived()) <= 0; @@ -311,11 +317,11 @@ namespace boost { { // For those compilers that do not support enable_if BOOST_STATIC_ASSERT((detail::is_interoperable< - typename Base1::derived_t, - typename Base2::derived_t >::value)); + BOOST_ARG_DEP_TYPENAME Base1::derived_t, + BOOST_ARG_DEP_TYPENAME Base2::derived_t >::value)); - BOOST_STATIC_ASSERT((is_same::value)); + BOOST_STATIC_ASSERT((is_same::value)); return iterator_core_access::distance_to(rhs.derived(), lhs.derived());