MSVC fixes.

[SVN r1408]
This commit is contained in:
Thomas Witt
2003-07-07 09:02:58 +00:00
parent 9ee9f64087
commit 6589266894
4 changed files with 14 additions and 7 deletions

View File

@ -95,4 +95,10 @@
# define BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
#endif
# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
# define BOOST_ARG_DEPENDENT_TYPENAME typename
# else
# define BOOST_ARG_DEPENDENT_TYPENAME
# endif
// no include guard multiple inclusion intended

View File

@ -17,6 +17,7 @@
#undef BOOST_NO_IS_CONVERTIBLE
#undef BOOST_NO_IS_CONVERTIBLE_TEMPLATE
#undef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
#undef BOOST_ARG_DEPENDENT_TYPENAME
#ifdef BOOST_ITERATOR_CONFIG_DEF
# undef BOOST_ITERATOR_CONFIG_DEF

View File

@ -276,7 +276,7 @@ namespace boost
BOOST_STATIC_ASSERT(
(detail::is_tag<
random_access_traversal_tag
, typename super_t::iterator_category::traversal
, BOOST_ARG_DEPENDENT_TYPENAME super_t::iterator_category::traversal
>::value)
);
m_iterator += n;
@ -289,7 +289,7 @@ namespace boost
BOOST_STATIC_ASSERT(
(detail::is_tag<
bidirectional_traversal_tag
, typename super_t::iterator_category::traversal
, BOOST_ARG_DEPENDENT_TYPENAME super_t::iterator_category::traversal
>::value)
);
--m_iterator;
@ -304,7 +304,7 @@ namespace boost
BOOST_STATIC_ASSERT(
(detail::is_tag<
random_access_traversal_tag
, typename super_t::iterator_category::traversal
, BOOST_ARG_DEPENDENT_TYPENAME super_t::iterator_category::traversal
>::value)
);
// Maybe readd with same_distance

View File

@ -32,14 +32,14 @@ namespace boost
{
template <class UnaryFunction>
struct result
struct function_object_result
{
typedef typename UnaryFunction::result_type type;
};
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
template <class Return, class Argument>
struct result<Return(*)(Argument)>
struct function_object_result<Return(*)(Argument)>
{
typedef Return type;
};
@ -59,7 +59,7 @@ namespace boost
typedef typename mpl::apply_if<
is_same< Reference, use_default >
, result<UnaryFunction>
, function_object_result<UnaryFunction>
, mpl::identity<Reference>
>::type result_type;
@ -140,7 +140,7 @@ namespace boost
return transform_iterator<UnaryFunction, Iterator>(it, fun);
}
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
template <class Return, class Argument, class Iterator>
transform_iterator< Return (*)(Argument), Iterator, Return>
make_transform_iterator(Iterator it, Return (*fun)(Argument))