• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()12 int 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()54 int main()
55 {
56 }
57 
58 #endif
59