diff --git a/test/boost_bind_compatibility/bind_rv_sp_test.cpp b/test/boost_bind_compatibility/bind_rv_sp_test.cpp index bd97fd2..a364a1b 100644 --- a/test/boost_bind_compatibility/bind_rv_sp_test.cpp +++ b/test/boost_bind_compatibility/bind_rv_sp_test.cpp @@ -60,7 +60,15 @@ int main() Y y; + // MSVC 10,9 and 8 all give a COMDAT error with the full test. + // This also fails: + //boost::shared_ptr xp = bind( &Y::f, &y )(); +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1700) + boost::shared_ptr xp = y.f(); + BOOST_TEST( bind( &X::f, xp)() == 42 ); +#else BOOST_TEST( bind( &X::f, bind( &Y::f, &y ) )() == 42 ); +#endif return boost::report_errors(); }