1 2 // Copyright 2018 Peter Dimov. 3 // Distributed under the Boost Software License, Version 1.0. 4 5 #include <boost/system/error_code.hpp> 6 #include <boost/config/pragma_message.hpp> 7 #include <boost/static_assert.hpp> 8 9 #if !defined(BOOST_SYSTEM_HAS_CONSTEXPR) 10 11 BOOST_PRAGMA_MESSAGE("Skipping constexpr test, BOOST_SYSTEM_HAS_CONSTEXPR isn't defined") main()12int main() {} 13 14 #else 15 16 using namespace boost::system; 17 18 constexpr error_code ec1( 1, system_category() ); 19 20 BOOST_STATIC_ASSERT( ec1.failed() ); 21 BOOST_STATIC_ASSERT( ec1 ); 22 BOOST_STATIC_ASSERT( !!ec1 ); 23 24 constexpr error_code ec2( 2, generic_category() ); 25 26 BOOST_STATIC_ASSERT( ec2.failed() ); 27 BOOST_STATIC_ASSERT( ec2 ); 28 BOOST_STATIC_ASSERT( !!ec2 ); 29 30 constexpr error_code ec3; 31 32 BOOST_STATIC_ASSERT( !ec3.failed() ); 33 BOOST_STATIC_ASSERT( ec3? false: true ); 34 BOOST_STATIC_ASSERT( !ec3 ); 35 36 constexpr error_condition en1( 1, system_category() ); 37 38 BOOST_STATIC_ASSERT( en1.failed() ); 39 BOOST_STATIC_ASSERT( en1 ); 40 BOOST_STATIC_ASSERT( !!en1 ); 41 42 constexpr error_condition en2( 2, generic_category() ); 43 44 BOOST_STATIC_ASSERT( en2.failed() ); 45 BOOST_STATIC_ASSERT( en2 ); 46 BOOST_STATIC_ASSERT( !!en2 ); 47 48 constexpr error_condition en3; 49 50 BOOST_STATIC_ASSERT( !en3.failed() ); 51 BOOST_STATIC_ASSERT( en3? false: true ); 52 BOOST_STATIC_ASSERT( !en3 ); 53 main()54int main() 55 { 56 } 57 58 #endif 59