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 f325582c40
commit bb7ac6bd84
10 changed files with 39 additions and 105 deletions

View File

@ -24,21 +24,14 @@
#include <boost/concept_check.hpp>
#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
typedef std::pair<int,int> intpair;
BOOST_TT_BROKEN_COMPILER_SPEC(intpair)
#endif
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
namespace boost { namespace detail
{
template<> struct iterator_traits<int*>
: ptr_iter_traits<int> {};
template<> struct iterator_traits<std::pair<int, int>*>
: ptr_iter_traits<std::pair<int, int> > {};
template<> struct iterator_traits<int const*>
: ptr_iter_traits<int, int const> {};
template<> struct iterator_traits<std::pair<int, int> const*>
: ptr_iter_traits<std::pair<int, int>, std::pair<int, int> const> {};
template<> struct function_object_result<int (*)(int)>
{
typedef int type;