]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/variant2/test/variant_eq_ne.cpp
b2fc19dc021b705e331fd4644cd227fe9db8cac6
2 // Copyright 2017 Peter Dimov.
4 // Distributed under the Boost Software License, Version 1.0.
6 // See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt
9 #include <boost/variant2/variant.hpp>
10 #include <boost/core/lightweight_test.hpp>
11 #include <boost/core/lightweight_test_trait.hpp>
12 #include <type_traits>
16 using namespace boost::variant2
;
22 inline bool operator==( X
const&, X
const& ) { return false; }
23 inline bool operator!=( X
const&, X
const& ) { return false; }
28 variant
<int> v1
, v2
, v3( 1 ), v4( 1 );
30 BOOST_TEST( v1
== v2
);
31 BOOST_TEST_NOT( v1
!= v2
);
33 BOOST_TEST( v1
!= v3
);
34 BOOST_TEST_NOT( v1
== v3
);
36 BOOST_TEST( v3
== v4
);
37 BOOST_TEST_NOT( v3
!= v4
);
41 variant
<int, float> v1
, v2
, v3( 1 ), v4( 1 ), v5( 3.14f
), v6( 3.14f
);
43 BOOST_TEST( v1
== v2
);
44 BOOST_TEST_NOT( v1
!= v2
);
46 BOOST_TEST( v1
!= v3
);
47 BOOST_TEST_NOT( v1
== v3
);
49 BOOST_TEST( v3
== v4
);
50 BOOST_TEST_NOT( v3
!= v4
);
52 BOOST_TEST( v1
!= v5
);
53 BOOST_TEST_NOT( v1
== v5
);
55 BOOST_TEST( v3
!= v5
);
56 BOOST_TEST_NOT( v3
== v5
);
58 BOOST_TEST( v5
== v6
);
59 BOOST_TEST_NOT( v5
!= v6
);
63 variant
<int, int, float> v1
, v2
, v3( in_place_index_t
<1>{} ), v4( in_place_index_t
<1>{} ), v5( 3.14f
), v6( 3.14f
);
65 BOOST_TEST( v1
== v2
);
66 BOOST_TEST_NOT( v1
!= v2
);
68 BOOST_TEST( v1
!= v3
);
69 BOOST_TEST_NOT( v1
== v3
);
71 BOOST_TEST( v3
== v4
);
72 BOOST_TEST_NOT( v3
!= v4
);
74 BOOST_TEST( v1
!= v5
);
75 BOOST_TEST_NOT( v1
== v5
);
77 BOOST_TEST( v3
!= v5
);
78 BOOST_TEST_NOT( v3
== v5
);
80 BOOST_TEST( v5
== v6
);
81 BOOST_TEST_NOT( v5
!= v6
);
87 BOOST_TEST_NOT( v1
== v2
);
88 BOOST_TEST_NOT( v1
!= v2
);
91 return boost::report_errors();