diff --git a/include/boost/python/suite/indexing/detail/indexing_suite_detail.hpp b/include/boost/python/suite/indexing/detail/indexing_suite_detail.hpp index 931ad4de..c8ffe250 100644 --- a/include/boost/python/suite/indexing/detail/indexing_suite_detail.hpp +++ b/include/boost/python/suite/indexing/detail/indexing_suite_detail.hpp @@ -11,6 +11,8 @@ # include # include # include +# include +# include # include # include #include @@ -590,7 +592,15 @@ namespace boost { namespace python { namespace detail { from = 0; if (from > max_index) // Clip upper bounds to max_index. from = max_index; + +// agurt 21/sep/04: here and below -- MSVC 6.x ICEs in 'vector_indexing_suite.cpp' +// unless we get skip 'boost::numeric_cast' layer and directly invoke the +// underlaying convertor's method +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) from_ = boost::numeric_cast(from); +#else + from_ = boost::numeric::converter::convert(from); +#endif } if (Py_None == slice->stop) { @@ -604,7 +614,12 @@ namespace boost { namespace python { namespace detail { to = 0; if (to > max_index) to = max_index; + +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) to_ = boost::numeric_cast(to); +#else + to_ = boost::numeric::converter::convert(to); +#endif } }