Moved to much cleaner system of using BOOST_TT_BROKEN_COMPILER_SPEC

for handling vc6/7 deficiencies with iterator_traits.

Fixed a bug in iterator_facade which was causing incomplete types to
be passed through is_convertible.

Reinstated libs/utility/iterator_traits_test.cpp


[SVN r19840]
This commit is contained in:
Dave Abrahams
2003-08-28 16:52:02 +00:00
parent d8914e583b
commit 42f271a4dc

View File

@@ -18,6 +18,7 @@ template< typename T > struct remove_const_impl { typedef T type; };
template< typename T > struct remove_volatile_impl { typedef T type; };
template< typename T > struct remove_pointer_impl { typedef T type; };
template< typename T > struct remove_reference_impl { typedef T type; };
typedef int invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;
}}
#endif
@@ -75,6 +76,8 @@ template<> struct trait##_impl<spec> \
# define BOOST_TT_BROKEN_COMPILER_SPEC(T) \
namespace boost { namespace detail { \
typedef invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces \
please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces; \
BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T) \
BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T) \
BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T*) \