mirror of
https://github.com/boostorg/detail.git
synced 2025-07-30 04:17:14 +02:00
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:
@ -284,20 +284,6 @@ template<class P> class please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqual
|
|||||||
|
|
||||||
template<class P>
|
template<class P>
|
||||||
struct pointer_value_type
|
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_<
|
: mpl::if_<
|
||||||
is_same<P, typename remove_pointer<P>::type>
|
is_same<P, typename remove_pointer<P>::type>
|
||||||
, please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
|
, 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
|
typename remove_pointer<P>::type
|
||||||
>::type
|
>::type
|
||||||
>
|
>
|
||||||
# endif
|
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template<class P>
|
template<class P>
|
||||||
struct pointer_reference
|
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_<
|
: mpl::if_<
|
||||||
is_same<P, typename remove_pointer<P>::type>
|
is_same<P, typename remove_pointer<P>::type>
|
||||||
, please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
|
, please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
|
||||||
, typename remove_pointer<P>::type&
|
, typename remove_pointer<P>::type&
|
||||||
>
|
>
|
||||||
# endif
|
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user