Removed code-breaking change from boost/detail/iterator.hpp and

corresponding workarounds from tests.

Added permutation_iterator_test to the suite after fixing it up -- it
was riddled with bugs!


[SVN r19841]
This commit is contained in:
Dave Abrahams
2003-08-28 20:18:51 +00:00
parent 092c5f5b52
commit 665f18d2b7

View File

@ -284,20 +284,6 @@ template<class P> class please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqual
template<class P>
struct pointer_value_type
# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) || BOOST_WORKAROUND(__EDG_VERSION__, != 0)
// Special formulation required to get
// please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee
// to show up in vc7 errors. It's better to use the other one if
// possible because it means you can use the other members of
// iterator_traits
: mpl::apply_if<
is_same<P, typename remove_pointer<P>::type>
, please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
, remove_const<
typename remove_pointer<P>::type
>
>
# else
: mpl::if_<
is_same<P, typename remove_pointer<P>::type>
, please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
@ -305,31 +291,17 @@ struct pointer_value_type
typename remove_pointer<P>::type
>::type
>
# endif
{
};
template<class P>
struct pointer_reference
# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) || BOOST_WORKAROUND(__EDG_VERSION__, != 0)
// Special formulation required to get
// please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee to
// show up in vc7 errors. It's better to use the other one if
// possible because it means you can use the other members of
// iterator_traits
: mpl::apply_if<
is_same<P, typename remove_pointer<P>::type>
, please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
, add_reference<typename remove_pointer<P>::type>
>
# else
: mpl::if_<
is_same<P, typename remove_pointer<P>::type>
, please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
, typename remove_pointer<P>::type&
>
# endif
{
};