vc6 workarounds

[SVN r20869]
This commit is contained in:
Dave Abrahams
2003-11-19 22:04:02 +00:00
parent 22670777b8
commit f46f7f8091
2 changed files with 18 additions and 9 deletions

View File

@ -63,7 +63,7 @@ struct minimum_category_impl<false,false>
};
};
template <class T1, class T2>
template <class T1 = mpl::_1, class T2 = mpl::_2>
struct minimum_category
{
typedef minimum_category_impl<
@ -75,7 +75,15 @@ struct minimum_category
typedef typename inner::type type;
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,minimum_category,(T1,T2))
};
};
template <>
struct minimum_category<mpl::_1,mpl::_2>
{
template <class T1, class T2>
struct apply : minimum_category<T1,T2>
{};
};
# if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
template <>

View File

@ -261,16 +261,17 @@ namespace boost {
)
{
typedef typename tuple_meta_transform<
typename Tuple::tail_type
BOOST_DEDUCED_TYPENAME Tuple::tail_type
, Fun
>::type transformed_tail_type;
return tuples::cons<
typename mpl::apply1<Fun, typename Tuple::head_type>::type
BOOST_DEDUCED_TYPENAME mpl::apply1<
Fun, BOOST_DEDUCED_TYPENAME Tuple::head_type
>::type
, transformed_tail_type
>(
f(boost::tuples::get<0>(t)),
tuple_transform(t.get_tail(), f)
f(boost::tuples::get<0>(t)), tuple_transform(t.get_tail(), f)
);
}
@ -382,12 +383,12 @@ namespace boost {
{
typedef typename tuple_impl_specific::tuple_meta_transform<
IteratorTuple
, iterator_traversal<mpl::_1>
, iterator_traversal<>
>::type tuple_of_traversal_tags;
typedef typename tuple_impl_specific::tuple_meta_accumulate<
tuple_of_traversal_tags
, minimum_category<mpl::_1,mpl::_2>
, minimum_category<>
, random_access_traversal_tag
>::type type;
};
@ -557,7 +558,7 @@ namespace boost {
{
detail::tuple_impl_specific::tuple_for_each(
m_iterator_tuple,
detail::advance_iterator<typename super_t::difference_type>(n)
detail::advance_iterator<BOOST_DEDUCED_TYPENAME super_t::difference_type>(n)
);
}
// Incrementing a zip iterator means to increment all iterators in