| 38 | |
| 39 | template <class T> |
| 40 | void test_comparable_struct() { |
| 41 | using namespace boost::pfr; |
| 42 | T s1 {0, 1, false, 6,7,8,9,10,11}; |
| 43 | T s2 = s1; |
| 44 | T s3 {0, 1, false, 6,7,8,9,10,11111}; |
| 45 | BOOST_TEST(eq(s1, s2)); |
| 46 | BOOST_TEST(le(s1, s2)); |
| 47 | BOOST_TEST(ge(s1, s2)); |
| 48 | BOOST_TEST(!ne(s1, s2)); |
| 49 | BOOST_TEST(!eq(s1, s3)); |
| 50 | BOOST_TEST(ne(s1, s3)); |
| 51 | BOOST_TEST(lt(s1, s3)); |
| 52 | BOOST_TEST(gt(s3, s2)); |
| 53 | BOOST_TEST(le(s1, s3)); |
| 54 | BOOST_TEST(ge(s3, s2)); |
| 55 | |
| 56 | std::cout << boost::pfr::io(s1); |
| 57 | |
| 58 | T s4; |
| 59 | std::stringstream ss; |
| 60 | ss.exceptions ( std::ios::failbit); |
| 61 | ss << boost::pfr::io(s1); |
| 62 | ss >> boost::pfr::io(s4); |
| 63 | std::cout << boost::pfr::io(s4); |
| 64 | BOOST_TEST(eq(s1, s4)); |
| 65 | } |
| 66 | |
| 67 | void test_empty_struct() { |
| 68 | struct empty {}; |