From 5259bdd5fc4734a1758345e19cb2feb9bb8cdf3f Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Thu, 23 Jan 2020 17:22:45 +0200 Subject: [PATCH] Disable move triviality tests on libstdc++ 4.x --- test/variant_trivial.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/test/variant_trivial.cpp b/test/variant_trivial.cpp index 48148e3..bd36001 100644 --- a/test/variant_trivial.cpp +++ b/test/variant_trivial.cpp @@ -8,6 +8,7 @@ #include #include +#include #include using namespace boost::mp11; @@ -37,7 +38,6 @@ template class L, class T1, class... T> struct mp_power_set_i // using namespace boost::variant2; -namespace v2d = boost::variant2::detail; struct D { @@ -90,11 +90,16 @@ struct test { using U = mp_inherit; - BOOST_TEST_EQ( v2d::is_trivially_copy_constructible>::value, v2d::is_trivially_copy_constructible::value ); - BOOST_TEST_EQ( v2d::is_trivially_move_constructible>::value, v2d::is_trivially_move_constructible::value ); - BOOST_TEST_EQ( v2d::is_trivially_copy_assignable>::value, std::is_trivially_destructible::value && v2d::is_trivially_copy_constructible::value && v2d::is_trivially_copy_assignable::value ); - BOOST_TEST_EQ( v2d::is_trivially_move_assignable>::value, std::is_trivially_destructible::value && v2d::is_trivially_move_constructible::value && v2d::is_trivially_move_assignable::value ); + BOOST_TEST_EQ( std::is_trivially_copy_constructible>::value, std::is_trivially_copy_constructible::value ); + BOOST_TEST_EQ( std::is_trivially_copy_assignable>::value, std::is_trivially_destructible::value && std::is_trivially_copy_constructible::value && std::is_trivially_copy_assignable::value ); BOOST_TEST_EQ( std::is_trivially_destructible>::value, std::is_trivially_destructible::value ); + +#if !BOOST_WORKAROUND(BOOST_LIBSTDCXX_VERSION < 50000) + + BOOST_TEST_EQ( std::is_trivially_move_constructible>::value, std::is_trivially_move_constructible::value ); + BOOST_TEST_EQ( std::is_trivially_move_assignable>::value, std::is_trivially_destructible::value && std::is_trivially_move_constructible::value && std::is_trivially_move_assignable::value ); + +#endif } };