diff --git a/include/boost/concept/detail/msvc.hpp b/include/boost/concept/detail/msvc.hpp old mode 100755 new mode 100644 index 3aadb79..d71d91b --- a/include/boost/concept/detail/msvc.hpp +++ b/include/boost/concept/detail/msvc.hpp @@ -14,6 +14,7 @@ namespace boost { namespace concept { + template struct check { @@ -22,7 +23,19 @@ struct check x->~Model(); } }; - + +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION +struct failed {}; +template +struct check +{ + virtual void failed(Model* x) + { + x->~Model(); + } +}; +# endif + # ifdef BOOST_OLD_CONCEPT_SUPPORT namespace detail @@ -38,7 +51,11 @@ struct require : mpl::if_c< not_satisfied::value , detail::constraint +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION , check +# else + , check +# endif >::type {}; @@ -46,7 +63,11 @@ struct require template struct require - : check +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION + : check +# else + : check +# endif {}; # endif