diff --git a/test/variant_copy_construct.cpp b/test/variant_copy_construct.cpp index d19e9a3..169a2fa 100644 --- a/test/variant_copy_construct.cpp +++ b/test/variant_copy_construct.cpp @@ -9,6 +9,8 @@ #include #include #include +#include +#include #include #include #include @@ -124,8 +126,12 @@ int main() test( v ); } +#if !BOOST_WORKAROUND( __GNUC__, < 5 ) + test( variant() ); +#endif + { BOOST_TEST_TRAIT_TRUE((std::is_nothrow_copy_constructible>)); BOOST_TEST_TRAIT_TRUE((std::is_nothrow_copy_constructible>)); diff --git a/test/variant_special.cpp b/test/variant_special.cpp index 4c012bc..cd6eab8 100644 --- a/test/variant_special.cpp +++ b/test/variant_special.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include using namespace boost::mp11; @@ -90,13 +91,21 @@ struct test { using U = mp_inherit; +#if !BOOST_WORKAROUND( __GNUC__, < 5 ) + BOOST_TEST_EQ( std::is_copy_constructible>::value, std::is_copy_constructible::value ); BOOST_TEST_EQ( std::is_nothrow_copy_constructible>::value, std::is_nothrow_copy_constructible::value ); +#endif + #if !BOOST_WORKAROUND(BOOST_MSVC, < 1910) + BOOST_TEST_EQ( std::is_move_constructible>::value, std::is_move_constructible::value ); + #else + BOOST_TEST_GE( std::is_move_constructible>::value, std::is_move_constructible::value ); + #endif BOOST_TEST_EQ( std::is_nothrow_move_constructible>::value, std::is_nothrow_move_constructible::value ); diff --git a/test/variant_trivial.cpp b/test/variant_trivial.cpp index 1540bc4..361dc0d 100644 --- a/test/variant_trivial.cpp +++ b/test/variant_trivial.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include using namespace boost::mp11; @@ -91,8 +92,13 @@ struct test { using U = mp_inherit; +#if !BOOST_WORKAROUND( __GNUC__, < 5 ) + BOOST_TEST_EQ( v2d::is_trivially_copy_constructible>::value, v2d::is_trivially_copy_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 ); + +#endif + BOOST_TEST_EQ( std::is_trivially_destructible>::value, std::is_trivially_destructible::value ); #if !BOOST_WORKAROUND(BOOST_LIBSTDCXX_VERSION, < 50000)