1818#include < iomanip>
1919#include < iostream>
2020#include < exception>
21+ #include < vector>
2122
2223using output_encoder = boost::exception_serialization::boost_json_encoder;
2324
3940
4041typedef boost::error_info<struct my_error1_ , int > my_error1;
4142typedef boost::error_info<struct my_error2_ , std::string> my_error2;
43+ typedef boost::error_info<struct my_error4_ , std::vector<int >> my_error4;
4244
4345struct
4446my_info
@@ -97,6 +99,13 @@ check_output(boost::json::value const & j, bool has_source_location)
9799 auto const & mij = obj.at (" my_error3_" ).as_object ();
98100 BOOST_TEST_EQ (mij.at (" code" ).as_int64 (), 1 );
99101 BOOST_TEST_EQ (mij.at (" message" ).as_string (), " error one" );
102+
103+ BOOST_TEST (obj.contains (" my_error4_" ));
104+ auto const & vec = obj.at (" my_error4_" ).as_array ();
105+ BOOST_TEST_EQ (vec.size (), 3u );
106+ BOOST_TEST_EQ (vec[0 ].as_int64 (), 1 );
107+ BOOST_TEST_EQ (vec[1 ].as_int64 (), 2 );
108+ BOOST_TEST_EQ (vec[2 ].as_int64 (), 3 );
100109 }
101110
102111int
@@ -111,7 +120,8 @@ main()
111120 e <<
112121 my_error1 (42 ) <<
113122 my_error2 (" hello" ) <<
114- my_error3 ({1 , " error one" });
123+ my_error3 ({1 , " error one" }) <<
124+ my_error4 ({1 , 2 , 3 });
115125 BOOST_THROW_EXCEPTION (e);
116126 }
117127 catch ( test_exception & e )
@@ -132,7 +142,8 @@ main()
132142 e <<
133143 my_error1 (42 ) <<
134144 my_error2 (" hello" ) <<
135- my_error3 ({1 , " error one" });
145+ my_error3 ({1 , " error one" }) <<
146+ my_error4 ({1 , 2 , 3 });
136147 BOOST_THROW_EXCEPTION (e);
137148 }
138149 catch ( ... )
0 commit comments