• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2018 Peter Dimov
2 //
3 // Distributed under the Boost Software License, Version 1.0.
4 //
5 // See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt
7 
8 #include <boost/throw_exception.hpp>
9 #include <boost/core/lightweight_test.hpp>
10 
11 #if defined(_MSC_VER)
12 # pragma warning(disable: 4702) // unreachable code
13 #endif
14 
15 class my_exception: public std::exception
16 {
17 };
18 
19 class my_exception2: public std::exception, public boost::exception
20 {
21 };
22 
23 class my_exception3: public std::exception, public virtual boost::exception
24 {
25 };
26 
main()27 int main()
28 {
29     BOOST_TEST_THROWS( boost::throw_exception( my_exception() ), boost::exception );
30     BOOST_TEST_THROWS( boost::throw_exception( my_exception2() ), boost::exception );
31     BOOST_TEST_THROWS( boost::throw_exception( my_exception3() ), boost::exception );
32 
33     BOOST_TEST_THROWS( BOOST_THROW_EXCEPTION( my_exception() ), boost::exception );
34     BOOST_TEST_THROWS( BOOST_THROW_EXCEPTION( my_exception2() ), boost::exception );
35     BOOST_TEST_THROWS( BOOST_THROW_EXCEPTION( my_exception3() ), boost::exception );
36 
37     return boost::report_errors();
38 }
39