diff --git a/test/variant_get_by_index_cx.cpp b/test/variant_get_by_index_cx.cpp index ae1b99f..026b9d3 100644 --- a/test/variant_get_by_index_cx.cpp +++ b/test/variant_get_by_index_cx.cpp @@ -7,84 +7,90 @@ // http://www.boost.org/LICENSE_1_0.txt #include +#include using namespace boost::variant2; #define STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__) +#if BOOST_WORKAROUND(BOOST_GCC, < 50000) +# define STATIC_ASSERT_IF(...) +#else +# define STATIC_ASSERT_IF(...) static_assert(__VA_ARGS__, #__VA_ARGS__) +#endif + int main() { { constexpr variant v; STATIC_ASSERT( get<0>(v) == 0 ); - STATIC_ASSERT( get_if<0>(&v) == &get<0>(v) ); + + STATIC_ASSERT_IF( get_if<0>(&v) == &get<0>(v) ); } { constexpr variant v( 1 ); STATIC_ASSERT( get<0>(v) == 1 ); - STATIC_ASSERT( get_if<0>(&v) == &get<0>(v) ); + + STATIC_ASSERT_IF( get_if<0>(&v) == &get<0>(v) ); } { constexpr variant v; STATIC_ASSERT( get<0>(v) == 0 ); - STATIC_ASSERT( get_if<0>(&v) == &get<0>(v) ); - STATIC_ASSERT( get_if<1>(&v) == nullptr ); + STATIC_ASSERT_IF( get_if<0>(&v) == &get<0>(v) ); + STATIC_ASSERT_IF( get_if<1>(&v) == nullptr ); } { constexpr variant v( 1 ); STATIC_ASSERT( get<0>(v) == 1 ); - STATIC_ASSERT( get_if<0>(&v) == &get<0>(v) ); - STATIC_ASSERT( get_if<1>(&v) == nullptr ); + STATIC_ASSERT_IF( get_if<0>(&v) == &get<0>(v) ); + STATIC_ASSERT_IF( get_if<1>(&v) == nullptr ); } { constexpr variant v( 3.14f ); - STATIC_ASSERT( get_if<0>(&v) == nullptr ); - STATIC_ASSERT( get<1>(v) == 3.14f ); - STATIC_ASSERT( get_if<1>(&v) == &get<1>(v) ); + + STATIC_ASSERT_IF( get_if<0>(&v) == nullptr ); + STATIC_ASSERT_IF( get_if<1>(&v) == &get<1>(v) ); } { constexpr variant v; STATIC_ASSERT( get<0>(v) == 0 ); - STATIC_ASSERT( get_if<0>(&v) == &get<0>(v) ); - STATIC_ASSERT( get_if<1>(&v) == nullptr ); - - STATIC_ASSERT( get_if<2>(&v) == nullptr ); + STATIC_ASSERT_IF( get_if<0>(&v) == &get<0>(v) ); + STATIC_ASSERT_IF( get_if<1>(&v) == nullptr ); + STATIC_ASSERT_IF( get_if<2>(&v) == nullptr ); } { constexpr variant v( 1 ); STATIC_ASSERT( get<0>(v) == 1 ); - STATIC_ASSERT( get_if<0>(&v) == &get<0>(v) ); - STATIC_ASSERT( get_if<1>(&v) == nullptr ); - - STATIC_ASSERT( get_if<2>(&v) == nullptr ); + STATIC_ASSERT_IF( get_if<0>(&v) == &get<0>(v) ); + STATIC_ASSERT_IF( get_if<1>(&v) == nullptr ); + STATIC_ASSERT_IF( get_if<2>(&v) == nullptr ); } { constexpr variant v( 3.14f ); - STATIC_ASSERT( get_if<0>(&v) == nullptr ); - - STATIC_ASSERT( get_if<1>(&v) == nullptr ); - STATIC_ASSERT( get<2>(v) == 3.14f ); - STATIC_ASSERT( get_if<2>(&v) == &get<2>(v) ); + + STATIC_ASSERT_IF( get_if<0>(&v) == nullptr ); + STATIC_ASSERT_IF( get_if<1>(&v) == nullptr ); + STATIC_ASSERT_IF( get_if<2>(&v) == &get<2>(v) ); } } diff --git a/test/variant_get_by_type_cx.cpp b/test/variant_get_by_type_cx.cpp index b4995fe..0f9a40c 100644 --- a/test/variant_get_by_type_cx.cpp +++ b/test/variant_get_by_type_cx.cpp @@ -7,72 +7,84 @@ // http://www.boost.org/LICENSE_1_0.txt #include +#include using namespace boost::variant2; #define STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__) +#if BOOST_WORKAROUND(BOOST_GCC, < 50000) +# define STATIC_ASSERT_IF(...) +#else +# define STATIC_ASSERT_IF(...) static_assert(__VA_ARGS__, #__VA_ARGS__) +#endif + int main() { { constexpr variant v; STATIC_ASSERT( get(v) == 0 ); - STATIC_ASSERT( get_if(&v) == &get(v) ); + + STATIC_ASSERT_IF( get_if(&v) == &get(v) ); } { constexpr variant v( 1 ); STATIC_ASSERT( get(v) == 1 ); - STATIC_ASSERT( get_if(&v) == &get(v) ); + + STATIC_ASSERT_IF( get_if(&v) == &get(v) ); } { constexpr variant v; STATIC_ASSERT( get(v) == 0 ); - STATIC_ASSERT( get_if(&v) == &get(v) ); - STATIC_ASSERT( get_if(&v) == nullptr ); + STATIC_ASSERT_IF( get_if(&v) == &get(v) ); + STATIC_ASSERT_IF( get_if(&v) == nullptr ); } { constexpr variant v( 1 ); STATIC_ASSERT( get(v) == 1 ); - STATIC_ASSERT( get_if(&v) == &get(v) ); - STATIC_ASSERT( get_if(&v) == nullptr ); + STATIC_ASSERT_IF( get_if(&v) == &get(v) ); + STATIC_ASSERT_IF( get_if(&v) == nullptr ); } { constexpr variant v( 3.14f ); - STATIC_ASSERT( get_if(&v) == nullptr ); - STATIC_ASSERT( get(v) == 3.14f ); - STATIC_ASSERT( get_if(&v) == &get(v) ); + + STATIC_ASSERT_IF( get_if(&v) == nullptr ); + STATIC_ASSERT_IF( get_if(&v) == &get(v) ); } { constexpr variant v; STATIC_ASSERT( get(v) == 0 ); - STATIC_ASSERT( get_if(&v) == &get(v) ); + + STATIC_ASSERT_IF( get_if(&v) == &get(v) ); } { constexpr variant v( 1 ); STATIC_ASSERT( get(v) == 1 ); - STATIC_ASSERT( get_if(&v) == &get(v) ); + + STATIC_ASSERT_IF( get_if(&v) == &get(v) ); } { constexpr variant v( 3.14f ); STATIC_ASSERT( get(v) == 3.14f ); - STATIC_ASSERT( get_if(&v) == &get(v) ); + + STATIC_ASSERT_IF( get_if(&v) == &get(v) ); } }