• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
2 
3 //Distributed under the Boost Software License, Version 1.0. (See accompanying
4 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 #include <boost/config.hpp>
7 
8 #if defined( BOOST_NO_EXCEPTIONS )
9 #   error This program requires exception handling.
10 #endif
11 
12 #include <boost/exception/get_error_info.hpp>
13 #include <boost/exception/info.hpp>
14 #include <boost/detail/lightweight_test.hpp>
15 #include <boost/detail/workaround.hpp>
16 #include <errno.h>
17 
18 typedef boost::error_info<struct tag_errno,int> info_errno;
19 
20 class
21 my_exception:
22     public boost::exception
23     {
24     };
25 
26 int
main()27 main()
28     {
29     try
30         {
31         errno=1;
32         throw my_exception() << info_errno(errno);
33         }
34     catch(
35     my_exception & x )
36         {
37         BOOST_TEST(1==*boost::get_error_info<info_errno>(x));
38         }
39     return boost::report_errors();
40     }
41