Test virtual inheritance from boost::exception

This commit is contained in:
Peter Dimov
2019-11-30 20:14:39 +02:00
parent ea9bd58f8c
commit 6458a1de40
3 changed files with 68 additions and 2 deletions

View File

@ -17,6 +17,10 @@ class my_exception2: public std::exception, public boost::exception
{
};
class my_exception3: public std::exception, public virtual boost::exception
{
};
int main()
{
try
@ -43,6 +47,18 @@ int main()
BOOST_TEST_THROWS( boost::rethrow_exception( p ), boost::exception );
}
try
{
boost::throw_exception( my_exception3() );
}
catch( ... )
{
boost::exception_ptr p = boost::current_exception();
BOOST_TEST_THROWS( boost::rethrow_exception( p ), my_exception3 );
BOOST_TEST_THROWS( boost::rethrow_exception( p ), boost::exception );
}
try
{
BOOST_THROW_EXCEPTION( my_exception() );
@ -67,5 +83,17 @@ int main()
BOOST_TEST_THROWS( boost::rethrow_exception( p ), boost::exception );
}
try
{
BOOST_THROW_EXCEPTION( my_exception3() );
}
catch( ... )
{
boost::exception_ptr p = boost::current_exception();
BOOST_TEST_THROWS( boost::rethrow_exception( p ), my_exception3 );
BOOST_TEST_THROWS( boost::rethrow_exception( p ), boost::exception );
}
return boost::report_errors();
}