diff --git a/include/boost/python/arg_from_python.hpp b/include/boost/python/arg_from_python.hpp index 64f1efbf..05611edb 100755 --- a/include/boost/python/arg_from_python.hpp +++ b/include/boost/python/arg_from_python.hpp @@ -7,14 +7,33 @@ # include # include +# if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ + || BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(800)) +# include +#endif namespace boost { namespace python { template struct arg_from_python - : converter::select_arg_from_python::type + : converter::select_arg_from_python< +# if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ + || BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(800)) + typename boost::remove_cv::type +# else + T +# endif + >::type { - typedef typename converter::select_arg_from_python::type base; + typedef typename converter::select_arg_from_python< +# if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ + || BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(800)) + typename boost::remove_cv::type +# else + T +# endif + >::type base; + arg_from_python(PyObject*); };