diff options
Diffstat (limited to 'libs/phoenix/test/boost_bind_compatibility/bind_rv_sp_test.cpp')
-rw-r--r-- | libs/phoenix/test/boost_bind_compatibility/bind_rv_sp_test.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/phoenix/test/boost_bind_compatibility/bind_rv_sp_test.cpp b/libs/phoenix/test/boost_bind_compatibility/bind_rv_sp_test.cpp index bd97fd2ad..3fe67c48f 100644 --- a/libs/phoenix/test/boost_bind_compatibility/bind_rv_sp_test.cpp +++ b/libs/phoenix/test/boost_bind_compatibility/bind_rv_sp_test.cpp @@ -2,6 +2,7 @@ Copyright (c) 2006 Peter Dimov Copyright (c) 2005-2010 Joel de Guzman Copyright (c) 2010 Thomas Heller + Copyright (c) 2015 John Fletcher Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -60,7 +61,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<X> xp = bind( &Y::f, &y )(); +#if defined(BOOST_MSVC) && (BOOST_MSVC < 1700) + boost::shared_ptr<X> 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(); } |