merged from trunk

[SVN r21894]
This commit is contained in:
Dave Abrahams
2004-01-24 17:49:47 +00:00
parent 1c5454ba96
commit 7f164fea93
3 changed files with 25 additions and 4 deletions
+11 -3
View File
@@ -228,7 +228,9 @@ namespace boost
template <class I1, class I2>
struct apply
:
# if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
iterator_difference<I1>
# elif BOOST_WORKAROUND(BOOST_MSVC, == 1200)
mpl::if_<
is_convertible<I2,I1>
, typename I1::difference_type
@@ -573,6 +575,12 @@ namespace boost
// ----------------
//
# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
# define BOOST_ITERATOR_CONVERTIBLE(a,b) mpl::true_()
# else
# define BOOST_ITERATOR_CONVERTIBLE(a,b) is_convertible<a,b>()
# endif
# define BOOST_ITERATOR_FACADE_INTEROP(op, result_type, return_prefix, base_op) \
BOOST_ITERATOR_FACADE_INTEROP_HEAD(inline, op, result_type) \
{ \
@@ -582,8 +590,8 @@ namespace boost
)); \
return_prefix iterator_core_access::base_op( \
static_cast<Derived1 const&>(lhs) \
, static_cast<Derived2 const&>(rhs) \
, is_convertible<Derived2,Derived1>() \
, static_cast<Derived2 const&>(rhs) \
, BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1) \
); \
}