diff --git a/include/boost/python/converter/registered.hpp b/include/boost/python/converter/registered.hpp index 2d3daa99..27988d52 100644 --- a/include/boost/python/converter/registered.hpp +++ b/include/boost/python/converter/registered.hpp @@ -10,6 +10,7 @@ # include # include # include +# include namespace boost { namespace python { namespace converter { @@ -34,10 +35,15 @@ struct registered { }; -# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -// collapses a few more types to the same static instance +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310)) +// collapses a few more types to the same static instance. MSVC7.1 +// fails to strip cv-qualification from array types in typeid. For +// some reason we can't use this collapse there or array converters +// will not be found. template -struct registered : registered {}; +struct registered + : registered {}; # endif //