diff --git a/include/boost/concept/detail/general.hpp b/include/boost/concept/detail/general.hpp old mode 100755 new mode 100644 index f36f9c4..14f1567 --- a/include/boost/concept/detail/general.hpp +++ b/include/boost/concept/detail/general.hpp @@ -29,6 +29,16 @@ struct requirement static void failed() { ((Model*)0)->~Model(); } }; +struct failed {}; + +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION +template +struct requirement +{ + static void failed() { ((Model*)0)->~Model(); } +}; +# endif + # ifdef BOOST_OLD_CONCEPT_SUPPORT template @@ -42,17 +52,28 @@ struct requirement_ : mpl::if_< concept::not_satisfied , constraint +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION + , requirement +# else , requirement +# endif >::type {}; # else // For GCC-2.x, these can't have exactly the same name +# ifndef BOOST_NO_PARTIAL_SPECIALIZATION template struct requirement_ - : requirement + : requirement {}; +# else +template +struct requirement_ + : requirement +{}; +# endif # endif