vc-7.1 workarounds

[SVN r33961]
This commit is contained in:
Dave Abrahams
2006-05-08 00:54:00 +00:00
parent 14450b3d5d
commit b087894c08

View File

@@ -27,11 +27,12 @@ struct check
namespace detail
{
// No need for a virtual function here, since evaluatiing
// No need for a virtual function here, since evaluating
// not_satisfied below will have already instantiated the
// constraints() member.
struct constraint {};
}
template <class Model>
struct require
: mpl::if_c<
@@ -54,19 +55,22 @@ struct require
//
// The iterator library sees some really strange errors unless we
// use partial specialization to extract the model type with
// msvc-7.1
//
// do things this way.
//
template <class Model>
struct require<void(*)(Model)>
: require<Model>
{};
{
virtual void failed(Model*)
{
require<Model>();
}
};
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
enum \
{ \
BOOST_PP_CAT(boost_concept_check,__LINE__) = \
sizeof(::boost::concept::require<ModelFnPtr>) \
sizeof(::boost::concept::require<ModelFnPtr>) \
}
# else // Not vc-7.1