]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/system/test/constexpr_test.cpp
2 // Copyright 2018 Peter Dimov.
3 // Distributed under the Boost Software License, Version 1.0.
5 #include <boost/system/error_code.hpp>
6 #include <boost/core/lightweight_test.hpp>
7 #include <boost/config/pragma_message.hpp>
8 #include <boost/static_assert.hpp>
9 #include <boost/config.hpp>
10 #include <boost/config/workaround.hpp>
12 #if !defined(BOOST_SYSTEM_HAS_CONSTEXPR)
14 BOOST_PRAGMA_MESSAGE("Skipping constexpr test, BOOST_SYSTEM_HAS_CONSTEXPR isn't defined")
19 using namespace boost::system
;
21 constexpr error_code
e1( 1, system_category() );
23 BOOST_STATIC_ASSERT( e1
.value() == 1 );
24 BOOST_STATIC_ASSERT( e1
.category() == system_category() );
25 BOOST_STATIC_ASSERT( e1
);
26 BOOST_STATIC_ASSERT( e1
== e1
);
28 constexpr error_code
e2( 2, generic_category() );
30 BOOST_STATIC_ASSERT( e2
.value() == 2 );
31 BOOST_STATIC_ASSERT( e2
.category() == generic_category() );
32 BOOST_STATIC_ASSERT( e2
);
33 BOOST_STATIC_ASSERT( e2
== e2
);
35 #if !BOOST_WORKAROUND(BOOST_GCC, < 80200)
37 BOOST_STATIC_ASSERT( e1
!= e2
);
41 constexpr error_code e3
;
43 BOOST_STATIC_ASSERT( e3
.value() == 0 );
44 BOOST_STATIC_ASSERT( e3
.category() == system_category() );
45 BOOST_STATIC_ASSERT( !e3
);
46 BOOST_STATIC_ASSERT( e3
== e3
);
48 #if !BOOST_WORKAROUND(BOOST_GCC, < 80200)
50 BOOST_STATIC_ASSERT( e1
!= e3
);
56 error_code
e1_( 1, system_category() );
57 BOOST_TEST_EQ( e1
, e1_
);
59 error_code
e2_( 2, generic_category() );
60 BOOST_TEST_EQ( e2
, e2_
);
63 BOOST_TEST_EQ( e3
, e3_
);
65 return boost::report_errors();