diff --git a/doc/BOOST_THROW_EXCEPTION.html b/doc/BOOST_THROW_EXCEPTION.html index f25121d..9647705 100644 --- a/doc/BOOST_THROW_EXCEPTION.html +++ b/doc/BOOST_THROW_EXCEPTION.html @@ -21,15 +21,15 @@

BOOST_THROW_EXCEPTION

-

#include <boost/throw_exception.hpp>

+

#include <boost/throw_exception.hpp>

#if !defined( BOOST_EXCEPTION_DISABLE )
-    #include <boost/exception/exception.hpp>
+    #include <boost/exception/exception.hpp>
     #include <boost/current_function.hpp>
     #define BOOST_THROW_EXCEPTION(x)\
         ::boost::throw_exception( ::boost::enable_error_info(x) <<\
-        ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
-        ::boost::throw_file(__FILE__) <<\
-        ::boost::throw_line((int)__LINE__) )
+        ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
+        ::boost::throw_file(__FILE__) <<\
+        ::boost::throw_line((int)__LINE__) )
 #else
     #define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
 #endif
@@ -37,7 +37,7 @@
diff --git a/doc/exception_diagnostic_information_hpp.html b/doc/boost_exception_diagnostic_information_hpp.html similarity index 97% rename from doc/exception_diagnostic_information_hpp.html rename to doc/boost_exception_diagnostic_information_hpp.html index 4668585..a27fe2d 100644 --- a/doc/exception_diagnostic_information_hpp.html +++ b/doc/boost_exception_diagnostic_information_hpp.html @@ -36,7 +36,7 @@ boost }

See Also:

-
boost/exception.hpp
+
boost/exception.hpp
current_exception_diagnostic_information
diagnostic_information
Synopsis
diff --git a/doc/exception_enable_current_exception_hpp.html b/doc/boost_exception_enable_current_exception_hpp.html similarity index 96% rename from doc/exception_enable_current_exception_hpp.html rename to doc/boost_exception_enable_current_exception_hpp.html index 2f3bf9e..7d4d7ab 100644 --- a/doc/exception_enable_current_exception_hpp.html +++ b/doc/boost_exception_enable_current_exception_hpp.html @@ -22,7 +22,7 @@

boost/exception/enable_current_exception.hpp

Synopsis

-
#include <boost/exception/exception.hpp>
+
#include <boost/exception/exception.hpp>
 
 namespace
 boost
diff --git a/doc/exception_enable_error_info_hpp.html b/doc/boost_exception_enable_error_info_hpp.html
similarity index 96%
rename from doc/exception_enable_error_info_hpp.html
rename to doc/boost_exception_enable_error_info_hpp.html
index 253b67b..2ce4c64 100644
--- a/doc/exception_enable_error_info_hpp.html
+++ b/doc/boost_exception_enable_error_info_hpp.html
@@ -22,7 +22,7 @@
 

boost/exception/enable_error_info.hpp

Synopsis

-
#include <boost/exception/exception.hpp>
+
#include <boost/exception/exception.hpp>
 
 namespace
 boost
diff --git a/doc/exception_error_info_value_hpp.html b/doc/boost_exception_error_info_hpp.html
similarity index 96%
rename from doc/exception_error_info_value_hpp.html
rename to doc/boost_exception_error_info_hpp.html
index d648cd4..d0c1a54 100644
--- a/doc/exception_error_info_value_hpp.html
+++ b/doc/boost_exception_error_info_hpp.html
@@ -30,7 +30,7 @@ boost
     }

See Also:

-
boost/exception.hpp
+
diff --git a/doc/exception_exception_hpp.html b/doc/boost_exception_exception_hpp.html similarity index 89% rename from doc/exception_exception_hpp.html rename to doc/boost_exception_exception_hpp.html index d263f7d..fbd123f 100644 --- a/doc/exception_exception_hpp.html +++ b/doc/boost_exception_exception_hpp.html @@ -45,11 +45,11 @@ boost

See Also:

diff --git a/doc/exception_get_error_info_hpp.html b/doc/boost_exception_get_error_info_hpp.html similarity index 96% rename from doc/exception_get_error_info_hpp.html rename to doc/boost_exception_get_error_info_hpp.html index cd7e26b..2312ca4 100644 --- a/doc/exception_get_error_info_hpp.html +++ b/doc/boost_exception_get_error_info_hpp.html @@ -32,7 +32,7 @@ boost }

See Also:

- diff --git a/doc/exception_hpp.html b/doc/boost_exception_hpp.html similarity index 72% rename from doc/exception_hpp.html rename to doc/boost_exception_hpp.html index 13f748b..49acadc 100644 --- a/doc/exception_hpp.html +++ b/doc/boost_exception_hpp.html @@ -22,13 +22,13 @@

boost/exception.hpp

Synopsis

-

See Also:

Diagnostic Information
diff --git a/doc/exception_error_info_hpp.html b/doc/boost_exception_info_hpp.html similarity index 93% rename from doc/exception_error_info_hpp.html rename to doc/boost_exception_info_hpp.html index 3749f76..49141bc 100644 --- a/doc/exception_error_info_hpp.html +++ b/doc/boost_exception_info_hpp.html @@ -22,7 +22,7 @@

boost/exception/info.hpp

Synopsis

-
#include <boost/exception/exception.hpp>
+
#include <boost/exception/exception.hpp>
 
 namespace
 boost
@@ -44,8 +44,8 @@ boost
     }

See Also:

-
boost/exception.hpp
-
boost/exception/info_tuple.hpp
+
boost/exception.hpp
+
boost/exception/info_tuple.hpp
error_info
error_info::error_info
error_info::value
diff --git a/doc/exception_error_info_group_hpp.html b/doc/boost_exception_info_tuple_hpp.html similarity index 94% rename from doc/exception_error_info_group_hpp.html rename to doc/boost_exception_info_tuple_hpp.html index 6998ea6..8d526fb 100644 --- a/doc/exception_error_info_group_hpp.html +++ b/doc/boost_exception_info_tuple_hpp.html @@ -22,7 +22,7 @@

boost/exception/info_tuple.hpp

Synopsis

-
#include <boost/exception/info.hpp>
+
#include <boost/exception/info.hpp>
 #include <boost/tuple/tuple.hpp>
 
 namespace
@@ -37,7 +37,7 @@ boost
     }

See Also:

-
boost/exception.hpp
+
diff --git a/doc/exception_cloning_hpp.html b/doc/boost_exception_ptr_hpp.html similarity index 86% rename from doc/exception_cloning_hpp.html rename to doc/boost_exception_ptr_hpp.html index b4d72de..8c63f06 100644 --- a/doc/exception_cloning_hpp.html +++ b/doc/boost_exception_ptr_hpp.html @@ -22,7 +22,7 @@

boost/exception_ptr.hpp

Synopsis

-
#include <boost/exception/exception.hpp>
+
#include <boost/exception/exception.hpp>
 
 namespace
 boost
@@ -35,6 +35,8 @@ boost
         ---unspecified---
         };    
     
+    typedef error_info<struct tag_original_exception_type,std::type_info const *> original_exception_type;    
+    
     typedef ---unspecified--- exception_ptr;    
     
     template <class T>
@@ -46,10 +48,11 @@ boost
     }

See Also:

-
boost/exception.hpp
+

Synopsis

#if !defined( BOOST_EXCEPTION_DISABLE )
-    #include <boost/exception/exception.hpp>
+    #include <boost/exception/exception.hpp>
     #include <boost/current_function.hpp>
     #define BOOST_THROW_EXCEPTION(x)\
         ::boost::throw_exception( ::boost::enable_error_info(x) <<\
-        ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
-        ::boost::throw_file(__FILE__) <<\
-        ::boost::throw_line((int)__LINE__) )
+        ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
+        ::boost::throw_file(__FILE__) <<\
+        ::boost::throw_line((int)__LINE__) )
 #else
     #define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
 #endif
diff --git a/doc/configuration_macros.html b/doc/configuration_macros.html
index a015075..83b17fd 100644
--- a/doc/configuration_macros.html
+++ b/doc/configuration_macros.html
@@ -29,7 +29,7 @@
 

The library needs RTTI functionality. Disabling the language RTTI support enables an internal RTTI system, which may have more or less overhead depending on the platform.

BOOST_EXCEPTION_DISABLE

By default, enable_current_exception and enable_error_info are integrated directly in the throw_exception function. Defining BOOST_EXCEPTION_DISABLE disables this integration.

-

Note that on some non-conformant compilers, for example MSVC 7.0 and older, as well as BCC, BOOST_EXCEPTION_DISABLE is implicitly defined in boost/throw_exception.hpp.

+

Note that on some non-conformant compilers, for example MSVC 7.0 and older, as well as BCC, BOOST_EXCEPTION_DISABLE is implicitly defined in boost/throw_exception.hpp.

BOOST_NO_EXCEPTIONS

This macro disables exception handling in Boost, forwarding all exceptions to a user-defined non-template version of boost::throw_exception. However, unless BOOST_EXCEPTION_DISABLE is also defined, users can still examine the exception object for any data added at the point of the throw, or use boost::diagnostic_information (of course under BOOST_NO_EXCEPTIONS, the user-defined boost::throw_exception is not allowed to return to the caller.)


diff --git a/doc/copy_exception.html b/doc/copy_exception.html index 6acf19b..242da3e 100644 --- a/doc/copy_exception.html +++ b/doc/copy_exception.html @@ -21,7 +21,7 @@

copy_exception

-

#include <boost/exception_ptr.hpp>

+

#include <boost/exception_ptr.hpp>

namespace
 boost
     {
@@ -41,7 +41,7 @@ catch(...)
 
diff --git a/doc/current_exception.html b/doc/current_exception.html index f19107e..da0685a 100644 --- a/doc/current_exception.html +++ b/doc/current_exception.html @@ -21,7 +21,7 @@

current_exception

-

#include <boost/exception_ptr.hpp>

+

#include <boost/exception_ptr.hpp>

namespace
 boost
     {
@@ -37,16 +37,20 @@ boost
 

Nothing.

Notes:

  • It is unspecified whether the return values of two successive calls to current_exception refer to the same exception object.
  • -
  • Correct implementation of current_exception may require compiler support, unless enable_current_exception was used at the time the currently handled exception object was passed to throw. If enable_current_exception was not used, and if the compiler does not provide the necessary support, then current_exception may return an exception_ptr that refers to an instance of unknown_exception. In this case, if the original exception object derives from boost::exception, then the boost::exception sub-object of the unknown_exception object is initialized by the boost::exception copy constructor.
  • +
  • Correct implementation of current_exception may require compiler support, unless enable_current_exception was used at the time the currently handled exception object was passed to throw. Whenever current_exception fails to properly copy the current exception object, it returns an exception_ptr to an object of type that is as close as possible to the original exception type, using unknown_exception as a final fallback. All such types derive from boost::exception, and:
    +
diff --git a/doc/current_exception_diagnostic_information.html b/doc/current_exception_diagnostic_information.html index b3bd25d..6366f63 100644 --- a/doc/current_exception_diagnostic_information.html +++ b/doc/current_exception_diagnostic_information.html @@ -21,7 +21,7 @@

current_exception_diagnostic_information

-

#include <boost/exception/diagnostic_information.hpp> 

+

#include <boost/exception/diagnostic_information.hpp> 

namespace
 boost
     {
@@ -54,7 +54,7 @@ main()
 
diff --git a/doc/diagnostic_information.html b/doc/diagnostic_information.html index 3c866c0..9243f46 100644 --- a/doc/diagnostic_information.html +++ b/doc/diagnostic_information.html @@ -21,7 +21,7 @@

diagnostic_information

-

#include <boost/exception/diagnostic_information.hpp> 

+

#include <boost/exception/diagnostic_information.hpp> 

namespace
 boost
     {
@@ -61,7 +61,7 @@ std::exception::what: example_io error
 

See Also:

BOOST_THROW_EXCEPTION
Boost Exception
-
boost/exception/diagnostic_information.hpp
+
boost/exception/diagnostic_information.hpp
Configuration Macros
current_exception_diagnostic_information
Diagnostic Information
diff --git a/doc/enable_current_exception.html b/doc/enable_current_exception.html index 902f7d4..86d58d8 100644 --- a/doc/enable_current_exception.html +++ b/doc/enable_current_exception.html @@ -21,7 +21,7 @@

enable_current_exception

-

#include <boost/exception/enable_current_exception.hpp>

+

#include <boost/exception/enable_current_exception.hpp>

namespace
 boost
     {
@@ -29,7 +29,9 @@ boost
     ---unspecified--- enable_current_exception( T const & e );
     }

Requirements:

-

T must be a class with an accessible no-throw copy constructor.

+
  • T must be a class with an accessible no-throw copy constructor.
  • +
  • If T has any virtual base types, those types must have an accessible default constructor.
  • +

Returns:

An object of unspecified type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &).

Description:

@@ -48,7 +50,7 @@ throw boost::enable_current_exception(my_exception

See Also:

Boost Exception
-
boost/exception/enable_current_exception.hpp
+
boost/exception/enable_current_exception.hpp
Configuration Macros
copy_exception
current_exception
diff --git a/doc/enable_error_info.html b/doc/enable_error_info.html index 2690bcf..84b3f18 100644 --- a/doc/enable_error_info.html +++ b/doc/enable_error_info.html @@ -21,7 +21,7 @@

enable_error_info

-

#include <boost/exception/enable_error_info.hpp>

+

#include <boost/exception/enable_error_info.hpp>

namespace
 boost
     {
@@ -40,7 +40,7 @@ boost
 

See Also:

BOOST_THROW_EXCEPTION
Boost Exception
-
boost/exception/enable_error_info.hpp
+
boost/exception/enable_error_info.hpp
Configuration Macros
Frequently Asked Questions
Integrating Boost Exception in Existing Exception Class Hierarchies
diff --git a/doc/error_info.html b/doc/error_info.html index 61dd36a..344190b 100644 --- a/doc/error_info.html +++ b/doc/error_info.html @@ -21,7 +21,7 @@

error_info

-

#include <boost/exception/info.hpp>

+

#include <boost/exception/info.hpp>

namespace
 boost
     {
@@ -42,18 +42,18 @@ boost
 

Description:

This class template is used to associate a Tag type with a value type T. Objects of type error_info<Tag,T> can be passed to operator<< to be stored in objects of type boost::exception.

Usage:

-

The header <boost/exception/error_info.hpp> provides a declaration of the error_info template, which is sufficient for the purpose of typedefing an instance for specific Tag and T, for example:

-
#include <boost/exception/error_info.hpp>
+

The header <boost/exception/error_info.hpp> provides a declaration of the error_info template, which is sufficient for the purpose of typedefing an instance for specific Tag and T, for example:

+
#include <boost/exception/error_info.hpp>
 
 struct tag_errno;
 typedef boost::error_info<tag_errno,int> errno_info;

Or, the shorter equivalent:

-
#include <boost/exception/error_info.hpp>
+
#include <boost/exception/error_info.hpp>
 
 typedef boost::error_info<struct tag_errno,int> errno_info;
-

This errno_info typedef can be passed to operator<< (#include <boost/exception/info.hpp> first) to store an int named tag_errno in exceptions of types that derive from boost::exception:

+

This errno_info typedef can be passed to operator<< (#include <boost/exception/info.hpp> first) to store an int named tag_errno in exceptions of types that derive from boost::exception:

throw file_read_error() << errno_info(errno);
-

It can also be passed to get_error_info (#include <boost/exception/get_error_info.hpp> first) to retrieve the tag_errno int from a boost::exception:

+

It can also be passed to get_error_info (#include <boost/exception/get_error_info.hpp> first) to retrieve the tag_errno int from a boost::exception:

catch( boost::exception & x )
     {
     if( int const * e=boost::get_error_info<errno_info>(x) )
@@ -62,9 +62,9 @@ typedef boost::error_info<struct tag_errno,int&
 
diff --git a/doc/error_info_error_info.html b/doc/error_info_error_info.html index 9296dc7..f6ca1b1 100644 --- a/doc/error_info_error_info.html +++ b/doc/error_info_error_info.html @@ -21,7 +21,7 @@

error_info::error_info

-

#include <boost/exception/info.hpp>

+

#include <boost/exception/info.hpp>

error_info( value_type const & v );

Effects:

Stores a copy of v in the error_info object.

diff --git a/doc/error_info_value.html b/doc/error_info_value.html index ee4a630..0d19a84 100644 --- a/doc/error_info_value.html +++ b/doc/error_info_value.html @@ -21,7 +21,7 @@

error_info::value

-

#include <boost/exception/info.hpp>

+

#include <boost/exception/info.hpp>

value_type const & value() const;

Description:

Returns a const reference to the copy of the value passed to error_info's constructor stored in the error_info object.

diff --git a/doc/error_info_value_type.html b/doc/error_info_value_type.html index b04da9a..96eab3c 100644 --- a/doc/error_info_value_type.html +++ b/doc/error_info_value_type.html @@ -21,7 +21,7 @@

error_info::value_type

-

#include <boost/exception/info.hpp>

+

#include <boost/exception/info.hpp>

typedef T value_type;

Definition:

The expression error_info<Tag,T>::value_type evaluates to T.

diff --git a/doc/exception.html b/doc/exception.html index 4276ffb..0e912d9 100644 --- a/doc/exception.html +++ b/doc/exception.html @@ -21,7 +21,7 @@

exception

-

#include <boost/exception/exception.hpp>

+

#include <boost/exception/exception.hpp>

namespace
 boost
     {
@@ -41,8 +41,8 @@ boost
 

See Also:

Boost Exception
-
boost/exception/diagnostic_information.hpp
-
boost/exception/exception.hpp
+
boost/exception/diagnostic_information.hpp
+
boost/exception/exception.hpp
Configuration Macros
current_exception
current_exception_diagnostic_information
diff --git a/doc/exception_operator_shl.html b/doc/exception_operator_shl.html index 99d13b2..1ced44e 100644 --- a/doc/exception_operator_shl.html +++ b/doc/exception_operator_shl.html @@ -21,7 +21,7 @@

exception/operator<<

-

#include <boost/exception/info.hpp> 

+

#include <boost/exception/info.hpp> 

namespace
 boost
     {
@@ -39,7 +39,7 @@ boost
 

See Also:

Boost Exception
-
boost/exception/info.hpp
+
boost/exception/info.hpp
Diagnostic Information
diagnostic_information
error_info
diff --git a/doc/exception_ptr.html b/doc/exception_ptr.html index 83e343b..655f3b3 100644 --- a/doc/exception_ptr.html +++ b/doc/exception_ptr.html @@ -21,7 +21,7 @@

exception_ptr

-

#include <boost/exception_ptr.hpp>

+

#include <boost/exception_ptr.hpp>

namespace
 boost
     {
@@ -38,11 +38,12 @@ boost
 

See Also:

diff --git a/doc/get_error_info.html b/doc/get_error_info.html index 427e417..8f64bc1 100644 --- a/doc/get_error_info.html +++ b/doc/get_error_info.html @@ -43,8 +43,9 @@ boost

See Also:

BOOST_THROW_EXCEPTION
Boost Exception
-
boost/exception/get_error_info.hpp
+
boost/exception/get_error_info.hpp
Configuration Macros
+
current_exception
error_info
exception
Motivation
diff --git a/doc/headers.html b/doc/headers.html index 9610f08..c13ee08 100644 --- a/doc/headers.html +++ b/doc/headers.html @@ -22,19 +22,19 @@

See Also:

diff --git a/doc/original_exception_type.html b/doc/original_exception_type.html new file mode 100644 index 0000000..090de12 --- /dev/null +++ b/doc/original_exception_type.html @@ -0,0 +1,54 @@ + + + + + original_exception_type + + + +
+
+
+
+ +

Boost Exception

+
+ + + +

original_exception_type

+
+

#include <boost/exception_ptr.hpp>

+
namespace
+boost
+    {
+    typedef error_info<struct tag_original_exception_type,std::type_info const *> original_exception_type;
+    }
+

This error_info typedef is used by current_exception if it defaults to returning an exception_ptr that refers to an object of type unknown_exception, to record in it the std::type_info of the original exception object.

+
+ + + + +
+
+
+ + diff --git a/doc/page_idx.html b/doc/page_idx.html index b9222dd..726a070 100644 --- a/doc/page_idx.html +++ b/doc/page_idx.html @@ -25,18 +25,18 @@

B

BOOST_THROW_EXCEPTION

b

-

boost/exception.hpp

+

boost/exception.hpp

boost/exception/current_exception_cast.hpp

-

boost/exception/diagnostic_information.hpp

-

boost/exception/enable_current_exception.hpp

-

boost/exception/enable_error_info.hpp

-

boost/exception/error_info.hpp

-

boost/exception/exception.hpp

-

boost/exception/get_error_info.hpp

-

boost/exception/info.hpp

-

boost/exception/info_tuple.hpp

-

boost/exception_ptr.hpp

-

boost/throw_exception.hpp

+

boost/exception/diagnostic_information.hpp

+

boost/exception/enable_current_exception.hpp

+

boost/exception/enable_error_info.hpp

+

boost/exception/error_info.hpp

+

boost/exception/exception.hpp

+

boost/exception/get_error_info.hpp

+

boost/exception/info.hpp

+

boost/exception/info_tuple.hpp

+

boost/exception_ptr.hpp

+

boost/throw_exception.hpp

C

Configuration Macros

c

@@ -74,6 +74,8 @@

M

Macros

Motivation

+

o

+

original_exception_type

r

rethrow_exception

S

diff --git a/doc/rethrow_exception.html b/doc/rethrow_exception.html index 775c913..7b4b2fd 100644 --- a/doc/rethrow_exception.html +++ b/doc/rethrow_exception.html @@ -21,7 +21,7 @@

rethrow_exception

-

#include <boost/exception_ptr.hpp>

+

#include <boost/exception_ptr.hpp>

namespace
 boost
     {
@@ -34,7 +34,7 @@ boost
 
diff --git a/doc/source/boost-exception.reno b/doc/source/boost-exception.reno index cb23860..86fde55 100644 --- a/doc/source/boost-exception.reno +++ b/doc/source/boost-exception.reno @@ -39,7 +39,7 @@ - 56 + 57 0 @@ -48,19 +48,64 @@ reno_context + + + + + + 1 + 7116AEECEA666794E31DC99390ADEC1BA6AF74B2398067A0739767B4B76FA97A + 4128134227 + 307 + 302 + + + + + + 0 + ../../example/logging.cpp + 0 + 0 + + + + + <string>diagnostic information</string> + + + tutorial_diagnostic_information + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 6 + + reno_context + 2 - F7537DC10435D0F7CC368E0FC747B2B1169E1CE60FCBAE8AC86F2256667C95B2 - 3301865866 - 4151 - 557 - D747B0A0953B72747224DE7856DB793A4BFF7B73793873CF22810FCB304A7310 - 505472020 - 3665 + 7BD35FAECA8BDD2E78E08EB02CF7F36163AE21D6859C73267AC53A05E5797909 + 2464409114 + 3681 + 502 + DBE4A27FCB9297C314B3F52A460B55A5540B2A3F173D48C8CD042388D19253E2 + 263970566 + 3656 26 @@ -93,7 +138,52 @@ 0 - 6 + 7 + + reno_context + + + + + + + 1 + 04DDC793002AFCF4F4166D250C67D09B6FE8B86224318ED7847AD6EC423B70CA + 922651615 + 433 + 1032 + + + + + + 0 + ../../../../boost/throw_exception.hpp + 0 + 0 + + + + + <string>BOOST_THROW_EXCEPTION</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 8 reno_context @@ -103,14 +193,14 @@ 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 E23085202D084CBB50F289988A6A592F06D923B77D0AB25D7A98A7188DF5BE3B 1414247481 766 - 7388 + 9687 @@ -142,60 +232,7 @@ 0 - 7 - - reno_context - - - - - - - 3 - 612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A - 1770110914 - 587 - 1462 - 60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D - 3929437933 - 361 - 213 - CD1241D84950468704F3C3F04116B8DA5162A8BEA4364F10951232F49113C5DE - 1658463867 - 121 - 238 - - - - - - 0 - ../../../../boost/throw_exception.hpp - 0 - 0 - - - - - <string>configuration macros</string> - - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 8 + 9 reno_context @@ -244,7 +281,60 @@ 0 - 9 + 10 + + reno_context + + + + + + + 3 + 612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A + 1770110914 + 587 + 1467 + 60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D + 3929437933 + 361 + 213 + CD1241D84950468704F3C3F04116B8DA5162A8BEA4364F10951232F49113C5DE + 1658463867 + 121 + 238 + + + + + + 0 + ../../../../boost/throw_exception.hpp + 0 + 0 + + + + + <string>configuration macros</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 11 reno_context @@ -287,52 +377,7 @@ 0 - 10 - - reno_context - - - - - - - 1 - 7116AEECEA666794E31DC99390ADEC1BA6AF74B2398067A0739767B4B76FA97A - 4128134227 - 307 - 302 - - - - - - 0 - ../../example/logging.cpp - 0 - 0 - - - - - <string>diagnostic information</string> - - - tutorial_diagnostic_information - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 11 + 12 reno_context @@ -381,7 +426,7 @@ 0 - 12 + 13 reno_context @@ -430,7 +475,7 @@ 0 - 13 + 14 reno_context @@ -468,7 +513,7 @@ 0 - 14 + 15 reno_context @@ -498,7 +543,7 @@ boost/exception/exception.hpp - exception_exception_hpp + @@ -513,7 +558,7 @@ 0 - 15 + 16 reno_context @@ -523,14 +568,14 @@ 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4 2078296250 305 - 8156 + 10455 @@ -562,7 +607,7 @@ 0 - 16 + 17 reno_context @@ -592,7 +637,7 @@ boost/exception/get_error_info.hpp - exception_get_error_info_hpp + @@ -607,7 +652,7 @@ 0 - 17 + 18 reno_context @@ -645,7 +690,7 @@ 0 - 18 + 19 reno_context @@ -694,7 +739,52 @@ 0 - 19 + 20 + + reno_context + + + + + + + 1 + 683D57B85DAEB8F69927D079F2038E0C64853D2B8A8CB5273B76ACAD5901DDFD + 878883983 + 573 + 4185 + + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + + <string>current_exception_diagnostic_information</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 21 reno_context @@ -717,7 +807,7 @@ boost/exception/enable_current_exception.hpp - exception_enable_current_exception_hpp + @@ -732,7 +822,7 @@ 0 - 20 + 22 reno_context @@ -768,7 +858,7 @@ 0 - 21 + 23 reno_context @@ -802,7 +892,7 @@ 0 - 22 + 24 reno_context @@ -843,7 +933,7 @@ 0 - -17 + -18 2 @@ -854,7 +944,7 @@ 0 - -21 + -23 @@ -867,7 +957,7 @@ 0 - -22 + -24 @@ -880,7 +970,7 @@ 0 - 23 + 25 reno_context @@ -929,7 +1019,7 @@ 0 - 24 + 26 reno_context @@ -939,14 +1029,14 @@ 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 F86EB07D04CD0D0645080D1121DA899746D0C45137E17E1D9BE605E75396F047 1983537541 1346 - 148 + 429 @@ -978,7 +1068,7 @@ 0 - 25 + 27 reno_context @@ -1027,7 +1117,7 @@ 0 - 26 + 28 reno_context @@ -1066,100 +1156,6 @@ 0 - - - 0 - - 27 - - reno_context - - - - - - - 1 - 04DDC793002AFCF4F4166D250C67D09B6FE8B86224318ED7847AD6EC423B70CA - 922651615 - 433 - 1027 - - - - - - 0 - ../../../../boost/throw_exception.hpp - 0 - 0 - - - - - <string>BOOST_THROW_EXCEPTION</string> - - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 28 - - reno_context - - - - - - - 2 - F7537DC10435D0F7CC368E0FC747B2B1169E1CE60FCBAE8AC86F2256667C95B2 - 3301865866 - 4151 - 557 - 90ECFCA1DA49DBB79A23B5998A39D8A6B122632524671C56DA10F96A1BA07CD2 - 1653443895 - 452 - 3693 - - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - - <string>current_exception_diagnostic_information</string> - - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - 0 @@ -1168,6 +1164,44 @@ reno_context + + + + + + 0 + + + + + + 1 + + + + + <string>Functions</string> + + + functions + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 30 + + reno_context + @@ -1202,7 +1236,7 @@ 0 - 30 + 31 reno_context @@ -1245,7 +1279,7 @@ 0 - 31 + 32 reno_context @@ -1294,7 +1328,7 @@ 0 - 32 + 33 reno_context @@ -1347,7 +1381,7 @@ 0 - 33 + 34 reno_context @@ -1357,10 +1391,10 @@ 1 - 9E3988368193B192FA2426DE2B97FA8D0DA8A9FFECAD6A010FE1B5CD9662FAE9 - 109897168 - 4491 - 227 + B26AA4D68CD040C376C32D7D469C926EC02DB8F76A3DA3275D14CCABCA02902C + 1262147856 + 4435 + 323 @@ -1377,7 +1411,7 @@ boost/exception/diagnostic_information.hpp - exception_diagnostic_information_hpp + @@ -1392,7 +1426,7 @@ 0 - 34 + 35 reno_context @@ -1431,44 +1465,6 @@ 0 - - - 0 - - 35 - - reno_context - - - - - - - 0 - - - - - - 1 - - - - - <string>Functions</string> - - - functions - - - - - - 1 - 2 - (:include include:) (:auto also:) - - 0 @@ -1483,14 +1479,14 @@ 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 - 9F3671DA5E8AB414F1FBA3B160D49134EAEE8DFF33E95376EDB41534E916FF38 - 2436936467 - 718 - 1496 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 + 6B3B617AC518A2177BDB89656E726B4E4D79577E289130493A61BAE24FB64838 + 3173127726 + 1101 + 1777 @@ -1660,7 +1656,7 @@ 612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A 1770110914 587 - 1462 + 1467 60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D 3929437933 361 @@ -1706,14 +1702,14 @@ 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 0E9DF8366080712A816BE91ABCEF1E2044145B63D75B0B995B537900F378189E 1069696031 255 - 8463 + 10762 @@ -2088,7 +2084,7 @@ boost/exception/info_tuple.hpp - exception_error_info_group_hpp + @@ -2133,7 +2129,7 @@ boost/exception.hpp - exception_hpp + @@ -2224,7 +2220,7 @@ boost/exception/enable_error_info.hpp - exception_enable_error_info_hpp + @@ -2311,7 +2307,7 @@ boost/exception/error_info.hpp - exception_error_info_value_hpp + @@ -2394,7 +2390,7 @@ boost/exception/info.hpp - exception_error_info_hpp + @@ -2419,9 +2415,9 @@ 1 - E127BAFA15A5B7031C0DD1817993041600F935B71E7BDE42E1F4AF50959B6AB3 - 2166367611 - 9016 + ACBC114551B7A04441A0452AB97D25519D6D2AE97DA6C5DDBC2E7C4B9002F847 + 4238517159 + 11368 323 @@ -2439,7 +2435,7 @@ boost/exception_ptr.hpp - exception_cloning_hpp + @@ -2464,9 +2460,9 @@ 1 - 05698FEF1D553EDBC15212673561F5436DF771AA5488C8ED8164D303078DE08E - 119041194 - 1978 + BEFF039468E0E9A3719E5CB51DA9710812D146B587BAF573D1670908BB97C0CA + 35548578 + 1983 91 @@ -2484,7 +2480,7 @@ boost/throw_exception.hpp - throw_exception_hpp + @@ -2578,6 +2574,55 @@ (:include include:) (:auto also:) + + + 0 + + 61 + + reno_context + + + + + + + 2 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 + 1516D0B7E11CBEB60CE4222565ACCAFF2E9857A8A505C1C26E2AE90087250581 + 3624753243 + 279 + 26 + + + + + + 0 + ../../../../boost/exception_ptr.hpp + 0 + 0 + + + + + <string>original_exception_type</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + @@ -2585,13 +2630,13 @@ def - 61 + 62 reno_layer - 56 + 57 0 @@ -3043,7 +3088,7 @@ 0 - -25 + -27 2 @@ -3083,7 +3128,7 @@ 0 - -11 + -12 2 @@ -3092,7 +3137,7 @@ 0 - -32 + -33 2 @@ -3275,6 +3320,17 @@ 0 + + + 0 + + -61 + + + + 0 + + @@ -3282,13 +3338,13 @@ api - 62 + 63 reno_layer - 56 + 57 0 @@ -3395,6 +3451,17 @@ -14 + + 0 + + + + + 0 + + -15 + + 11 2 @@ -3450,7 +3517,7 @@ 0 - -15 + -16 @@ -3461,7 +3528,7 @@ 0 - -16 + -17 @@ -3479,17 +3546,6 @@ decl:)@] - - - 0 - - -17 - - - - 0 - - 0 @@ -3509,18 +3565,7 @@ - 3 - 2 - [@(:include - 1 - - 0 - - -8 - - - 2 - decl:)@] + 0 @@ -3542,7 +3587,18 @@ - 0 + 3 + 2 + [@(:include + 1 + + 0 + + -9 + + + 2 + decl:)@] @@ -3674,27 +3730,7 @@ - 5 - 2 - [@(:include - 1 - - 0 - - -5 - - - 2 - decl:) (:include - 1 - - 0 - - -28 - - - 2 - decl:)@] + 0 @@ -3705,7 +3741,27 @@ - 0 + 5 + 2 + [@(:include + 1 + + 0 + + -6 + + + 2 + decl:) (:include + 1 + + 0 + + -20 + + + 2 + decl:)@] @@ -3877,7 +3933,7 @@ 0 - -12 + -13 2 @@ -3899,7 +3955,7 @@ 0 - -33 + -34 2 @@ -3917,7 +3973,7 @@ 0 - -14 + -15 2 @@ -3926,7 +3982,7 @@ 0 - -16 + -17 2 @@ -3986,7 +4042,7 @@ 0 - -23 + -25 2 @@ -4061,7 +4117,7 @@ 0 - -18 + -19 2 @@ -4076,7 +4132,7 @@ - 11 + 13 2 [@(:include 1 @@ -4092,7 +4148,7 @@ 0 - -24 + -61 2 @@ -4101,7 +4157,7 @@ 0 - -15 + -26 2 @@ -4110,7 +4166,16 @@ 0 - -6 + -16 + + + 2 + decl:) (:include + 1 + + 0 + + -8 2 @@ -4141,7 +4206,7 @@ 0 - -27 + -7 2 @@ -4183,13 +4248,24 @@ 0 - -31 + -32 2 decl:)@] + + + 0 + + -61 + + + + 0 + + @@ -4197,13 +4273,13 @@ decl - 63 + 64 reno_layer - 56 + 57 0 @@ -4212,18 +4288,7 @@ - 3 - 2 - [@template <class E> std::string (:link - 1 - - 0 - - -5 - - - 2 - :)( E const & e );@] + 0 @@ -4234,18 +4299,9 @@ - 5 + 3 2 - [@(:link - 1 - - 0 - - -24 - - - 2 - :) (:link + [@template <class E> std::string (:link 1 0 @@ -4254,7 +4310,7 @@ 2 - :)();@] + :)( E const & e );@] @@ -4265,7 +4321,90 @@ - 0 + 19 + 2 + [@#if !defined( BOOST_EXCEPTION_DISABLE ) #include <(:link + 1 + + 0 + + -15 + + + 2 + :)> #include <boost/current_function.hpp> #define (:link + 1 + + 0 + + -7 + + + 2 + :)(x)\ ::boost::(:link + 1 + + 0 + + -40 + + + 2 + :)( ::boost::(:link + 1 + + 0 + + -25 + + + 2 + :)(x) <<\ ::boost::(:link + 1 + + 0 + + -15 + + + 2 + |throw_function:)(BOOST_CURRENT_FUNCTION) <<\ ::boost::(:link + 1 + + 0 + + -15 + + + 2 + |throw_file:)(__FILE__) <<\ ::boost::(:link + 1 + + 0 + + -15 + + + 2 + |throw_line:)((int)__LINE__) ) #else #define (:link + 1 + + 0 + + -7 + + + 2 + :)(x) ::boost::(:link + 1 + + 0 + + -40 + + + 2 + :)(x) #endif@] @@ -4276,9 +4415,18 @@ - 3 + 5 2 - [@template <class T> ---unspecified--- (:link + [@(:link + 1 + + 0 + + -26 + + + 2 + :) (:link 1 0 @@ -4287,7 +4435,7 @@ 2 - :)( T const & e );@] + :)();@] @@ -4298,7 +4446,18 @@ - 0 + 3 + 2 + [@template <class T> ---unspecified--- (:link + 1 + + 0 + + -9 + + + 2 + :)( T const & e );@] @@ -4319,6 +4478,17 @@ -11 + + 0 + + + + + 0 + + -12 + + 5 2 @@ -4327,7 +4497,7 @@ 0 - -11 + -12 2 @@ -4347,7 +4517,7 @@ 0 - -12 + -13 @@ -4358,7 +4528,7 @@ 0 - -12 + -13 2 @@ -4383,17 +4553,6 @@ :)<TagN,TN> > const & v );@] - - - 0 - - -13 - - - - 0 - - 0 @@ -4413,27 +4572,7 @@ - 5 - 2 - [@template <class T> (:link - 1 - - 0 - - -24 - - - 2 - :) (:link - 1 - - 0 - - -15 - - - 2 - :)( T const & e );@] + 0 @@ -4444,7 +4583,27 @@ - 0 + 5 + 2 + [@template <class T> (:link + 1 + + 0 + + -26 + + + 2 + :) (:link + 1 + + 0 + + -16 + + + 2 + :)( T const & e );@] @@ -4465,6 +4624,17 @@ -18 + + 0 + + + + + 0 + + -19 + + 5 2 @@ -4473,7 +4643,7 @@ 0 - -18 + -19 2 @@ -4489,17 +4659,6 @@ :)<Tag,T> const & v );@] - - - 0 - - -19 - - - - 0 - - 0 @@ -4508,7 +4667,18 @@ - 0 + 3 + 2 + [@std::string (:link + 1 + + 0 + + -20 + + + 2 + :)();@] @@ -4541,18 +4711,7 @@ - 3 - 2 - [@template <class T> ---unspecified--- (:link - 1 - - 0 - - -23 - - - 2 - :)( T const & x );@] + 0 @@ -4563,18 +4722,7 @@ - 3 - 2 - [@typedef ---unspecified--- (:link - 1 - - 0 - - -24 - - - 2 - :);@] + 0 @@ -4587,7 +4735,7 @@ 3 2 - [@(:link + [@template <class T> ---unspecified--- (:link 1 0 @@ -4596,7 +4744,7 @@ 2 - mod="m":)();@] + :)( T const & x );@] @@ -4607,7 +4755,18 @@ - 0 + 3 + 2 + [@typedef ---unspecified--- (:link + 1 + + 0 + + -26 + + + 2 + :);@] @@ -4618,18 +4777,9 @@ - 19 + 3 2 - [@#if !defined( BOOST_EXCEPTION_DISABLE ) #include <(:link - 1 - - 0 - - -14 - - - 2 - :)> #include <boost/current_function.hpp> #define (:link + [@(:link 1 0 @@ -4638,70 +4788,7 @@ 2 - :)(x)\ ::boost::(:link - 1 - - 0 - - -40 - - - 2 - :)( ::boost::(:link - 1 - - 0 - - -23 - - - 2 - :)(x) <<\ ::boost::(:link - 1 - - 0 - - -14 - - - 2 - |throw_function:)(BOOST_CURRENT_FUNCTION) <<\ ::boost::(:link - 1 - - 0 - - -14 - - - 2 - |throw_file:)(__FILE__) <<\ ::boost::(:link - 1 - - 0 - - -14 - - - 2 - |throw_line:)((int)__LINE__) ) #else #define (:link - 1 - - 0 - - -27 - - - 2 - :)(x) ::boost::(:link - 1 - - 0 - - -40 - - - 2 - :)(x) #endif@] + mod="m":)();@] @@ -4712,18 +4799,7 @@ - 3 - 2 - [@std::string (:link - 1 - - 0 - - -28 - - - 2 - :)();@] + 0 @@ -4755,6 +4831,17 @@ -31 + + 0 + + + + + 0 + + -32 + + 3 2 @@ -4763,7 +4850,7 @@ 0 - -31 + -32 2 @@ -4774,7 +4861,7 @@ 0 - -32 + -33 @@ -4794,24 +4881,13 @@ 0 - -32 + -33 2 mod="m":)() const;@] - - - 0 - - -33 - - - - 0 - - 0 @@ -4973,7 +5049,7 @@ 0 - -24 + -26 2 @@ -5251,6 +5327,37 @@ 0 + + + 0 + + -61 + + + + 5 + 2 + [@typedef (:link + 1 + + 0 + + -44 + + + 2 + :)<struct tag_original_exception_type,std::type_info const *> + 1 + + 0 + + -61 + + + 2 + ;@] + + @@ -5258,13 +5365,13 @@ include - 64 + 65 reno_layer - 56 + 57 0 @@ -5272,6 +5379,100 @@ -5 + + 19 + 2 + (:auto !!:) Boost Exception provides a namespace-scope function (:link + 1 + + 0 + + -6 + + + 2 + :) which takes a boost::(:link + 1 + + 0 + + -43 + + + 2 + :). The returned string contains: *the string representation of all data objects added to the boost::(:link + 1 + + 0 + + -43 + + + 2 + :) through (:link + 1 + + 0 + + -19 + + + 2 + mod="/":); *the output from std::exception::what; *additional platform-specific diagnostic information. The returned string is not presentable as a friendly user message, but because it is generated automatically, it is useful for debugging or logging purposes. Here is an example: [@#include <(:link + 1 + + 0 + + -50 + + + 2 + :)> #include <iostream> void f(); //throws unknown types that derive from boost::(:link + 1 + + 0 + + -43 + + + 2 + :). void g() { try { f(); } catch( boost::(:link + 1 + + 0 + + -43 + + + 2 + :) & e ) { std::cerr << (:link + 1 + + 0 + + -6 + + + 2 + :)(e); } }@] (:include + 1 + + 0 + + -35 + + + 2 + :) + + + + + 0 + + -6 + + 29 2 @@ -5307,7 +5508,7 @@ 0 - -18 + -19 2 @@ -5325,7 +5526,7 @@ 0 - -5 + -6 2 @@ -5361,7 +5562,7 @@ 0 - -32 + -33 2 @@ -5370,7 +5571,7 @@ 0 - -32 + -33 2 @@ -5379,7 +5580,7 @@ 0 - -5 + -6 2 @@ -5397,7 +5598,7 @@ 0 - -34 + -35 2 @@ -5408,18 +5609,58 @@ 0 - -6 + -7 - 29 + 7 + 2 + (:auto !!!:) (:include synopsis:) This macro takes an exception object, records BOOST_CURRENT_FUNCTION, __FILE__ and __LINE__ in it, and forwards it to + 1 + + 0 + + -40 + + + 2 + . To recover this information at the catch site, use + 1 + + 0 + + -37 + + + 2 + ; the information is also included in the message returned by + 1 + + 0 + + -6 + + + 2 + . + + + + + 0 + + -8 + + + + 33 2 (:auto !!!:) (:include synopsis:) !!!!Requirements: The (:link 1 0 - -6 + -8 2 @@ -5428,7 +5669,7 @@ 0 - -24 + -26 2 @@ -5437,7 +5678,7 @@ 0 - -24 + -26 2 @@ -5446,7 +5687,7 @@ 0 - -6 + -8 2 @@ -5455,7 +5696,7 @@ 0 - -6 + -8 2 @@ -5464,11 +5705,11 @@ 0 - -8 + -9 2 - :) was used at the time the currently handled exception object was passed to throw. If (:link + :) was used at the time the currently handled exception object was passed to throw. Whenever 1 0 @@ -5477,25 +5718,16 @@ 2 - :) was not used, and if the compiler does not provide the necessary support, then (:link + fails to properly copy the current exception object, it returns an 1 0 - -6 + -26 2 - :) may return an (:link - 1 - - 0 - - -24 - - - 2 - :) that refers to an instance of (:link + to an object of type that is as close as possible to the original exception type, using 1 0 @@ -5504,7 +5736,16 @@ 2 - :). In this case, if the original exception object derives from boost::(:link + as a final fallback. All such types derive from boost:: + 1 + + 0 + + -43 + + + 2 + , and: ** if the original exception object derives from boost::(:link 1 0 @@ -5522,16 +5763,16 @@ 2 - :) sub-object of the (:link + :) sub-object of the object referred to by the returned 1 0 - -36 + -26 2 - :) object is initialized by the boost::(:link + is initialized by the boost::(:link 1 0 @@ -5540,14 +5781,135 @@ 2 - :) copy constructor. + :) copy constructor; ** if available, the exception contains the std::type_info of the original exception object, accessible through + 1 + + 0 + + -37 + + + 2 + < + 1 + + 0 + + -61 + + + 2 + >. 0 - -7 + -9 + + + + 21 + 2 + (:auto !!!:) (:include synopsis:) !!!!Requirements: * T must be a class with an accessible no-throw copy constructor. * If T has any virtual base types, those types must have an accessible default constructor. !!!!Returns: An object of ''unspecified'' type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &). !!!!Description: This function is designed to be used directly in a throw-expression to enable the (:link + 1 + + 0 + + -26 + + + 2 + :) support in Boost Exception. For example: [@class my_exception: public std::exception { }; .... throw boost::(:link + 1 + + 0 + + -9 + + + 2 + :)(my_exception());@] Unless (:link + 1 + + 0 + + -9 + + + 2 + :) is called at the time an exception object is used in a throw-expression, an attempt to copy it using (:link + 1 + + 0 + + -8 + + + 2 + :) may return an (:link + 1 + + 0 + + -26 + + + 2 + :) which refers to an instance of (:link + 1 + + 0 + + -36 + + + 2 + :). See (:link + 1 + + 0 + + -8 + + + 2 + :) for details. !!!!Note: Instead of using the throw keyword directly, it is preferable to call boost::(:link + 1 + + 0 + + -40 + + + 2 + :). This is guaranteed to throw an exception that derives from boost::(:link + 1 + + 0 + + -43 + + + 2 + :) and supports the (:link + 1 + + 0 + + -26 + + + 2 + :) functionality. + + + + + 0 + + -10 @@ -5585,7 +5947,7 @@ 0 - -8 + -9 2 @@ -5594,7 +5956,7 @@ 0 - -23 + -25 2 @@ -5630,7 +5992,7 @@ 0 - -5 + -6 2 @@ -5641,110 +6003,7 @@ 0 - -8 - - - - 21 - 2 - (:auto !!!:) (:include synopsis:) !!!!Requirements: T must be a class with an accessible no-throw copy constructor. !!!!Returns: An object of ''unspecified'' type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &). !!!!Description: This function is designed to be used directly in a throw-expression to enable the (:link - 1 - - 0 - - -24 - - - 2 - :) support in Boost Exception. For example: [@class my_exception: public std::exception { }; .... throw boost::(:link - 1 - - 0 - - -8 - - - 2 - :)(my_exception());@] Unless (:link - 1 - - 0 - - -8 - - - 2 - :) is called at the time an exception object is used in a throw-expression, an attempt to copy it using (:link - 1 - - 0 - - -6 - - - 2 - :) may return an (:link - 1 - - 0 - - -24 - - - 2 - :) which refers to an instance of (:link - 1 - - 0 - - -36 - - - 2 - :). See (:link - 1 - - 0 - - -6 - - - 2 - :) for details. !!!!Note: Instead of using the throw keyword directly, it is preferable to call boost::(:link - 1 - - 0 - - -40 - - - 2 - :). This is guaranteed to throw an exception that derives from boost::(:link - 1 - - 0 - - -43 - - - 2 - :) and supports the (:link - 1 - - 0 - - -24 - - - 2 - :) functionality. - - - - - 0 - - -9 + -11 @@ -5755,7 +6014,7 @@ 0 - -6 + -8 2 @@ -5764,7 +6023,7 @@ 0 - -24 + -26 2 @@ -5791,7 +6050,7 @@ 0 - -24 + -26 2 @@ -5800,7 +6059,7 @@ 0 - -24 + -26 2 @@ -5809,7 +6068,7 @@ 0 - -6 + -8 2 @@ -5818,7 +6077,7 @@ 0 - -6 + -8 2 @@ -5836,7 +6095,7 @@ 0 - -24 + -26 2 @@ -5854,7 +6113,7 @@ 0 - -6 + -8 2 @@ -5863,7 +6122,7 @@ 0 - -24 + -26 2 @@ -5872,7 +6131,7 @@ 0 - -8 + -9 2 @@ -5881,7 +6140,7 @@ 0 - -24 + -26 2 @@ -5899,7 +6158,7 @@ 0 - -6 + -8 2 @@ -5919,101 +6178,7 @@ 0 - -10 - - - - 19 - 2 - (:auto !!:) Boost Exception provides a namespace-scope function (:link - 1 - - 0 - - -5 - - - 2 - :) which takes a boost::(:link - 1 - - 0 - - -43 - - - 2 - :). The returned string contains: *the string representation of all data objects added to the boost::(:link - 1 - - 0 - - -43 - - - 2 - :) through (:link - 1 - - 0 - - -18 - - - 2 - mod="/":); *the output from std::exception::what; *additional platform-specific diagnostic information. The returned string is not presentable as a friendly user message, but because it is generated automatically, it is useful for debugging or logging purposes. Here is an example: [@#include <(:link - 1 - - 0 - - -50 - - - 2 - :)> #include <iostream> void f(); //throws unknown types that derive from boost::(:link - 1 - - 0 - - -43 - - - 2 - :). void g() { try { f(); } catch( boost::(:link - 1 - - 0 - - -43 - - - 2 - :) & e ) { std::cerr << (:link - 1 - - 0 - - -5 - - - 2 - :)(e); } }@] (:include - 1 - - 0 - - -34 - - - 2 - :) - - - - - 0 - - -11 + -12 @@ -6035,7 +6200,7 @@ 0 - -12 + -13 @@ -6066,7 +6231,7 @@ 0 - -13 + -14 @@ -6104,7 +6269,7 @@ 0 - -30 + -31 2 @@ -6113,7 +6278,7 @@ 0 - -26 + -28 2 @@ -6124,7 +6289,7 @@ 0 - -14 + -15 @@ -6133,37 +6298,6 @@ (:auto !!:) !!!Synopsis (:include synopsis:) - - - 0 - - -15 - - - - 5 - 2 - (:auto !!!:) (:include synopsis:) !!!!Effects: As if [@try { throw - 1 - - 0 - - -8 - - - 2 - (e); } catch(...) { return (:link - 1 - - 0 - - -6 - - - 2 - :)(); }@] - - 0 @@ -6171,6 +6305,37 @@ -16 + + 5 + 2 + (:auto !!!:) (:include synopsis:) !!!!Effects: As if [@try { throw + 1 + + 0 + + -9 + + + 2 + (e); } catch(...) { return (:link + 1 + + 0 + + -8 + + + 2 + :)(); }@] + + + + + 0 + + -17 + + 1 2 @@ -6181,7 +6346,7 @@ 0 - -17 + -18 @@ -6210,7 +6375,7 @@ 0 - -23 + -25 2 @@ -6246,7 +6411,7 @@ 0 - -18 + -19 2 @@ -6273,7 +6438,7 @@ 0 - -18 + -19 2 @@ -6318,7 +6483,7 @@ 0 - -6 + -8 2 @@ -6327,7 +6492,7 @@ 0 - -27 + -7 2 @@ -6345,7 +6510,7 @@ 0 - -5 + -6 2 @@ -6354,7 +6519,7 @@ 0 - -5 + -6 2 @@ -6363,7 +6528,7 @@ 0 - -27 + -7 2 @@ -6408,7 +6573,7 @@ 0 - -24 + -26 2 @@ -6417,7 +6582,7 @@ 0 - -8 + -9 2 @@ -6453,7 +6618,7 @@ 0 - -18 + -19 2 @@ -6462,7 +6627,7 @@ 0 - -18 + -19 2 @@ -6471,7 +6636,7 @@ 0 - -18 + -19 2 @@ -6482,7 +6647,7 @@ 0 - -18 + -19 @@ -6522,7 +6687,56 @@ 0 - -19 + -20 + + + + 9 + 2 + (:auto !!!:) (:include synopsis:) !!!!Requirements: This function must not be called outside of a catch block. !!!!Returns: If the current exception object can be converted to boost::(:link + 1 + + 0 + + -43 + + + 2 + :) or std::exception, this function returns the same string value returned by (:link + 1 + + 0 + + -6 + + + 2 + :) for the current exception object. Otherwise, an unspecified non-empty string is returned. Typical use is to call + 1 + + 0 + + -20 + + + 2 + from a top-level function to output diagnostic information about unhandled exceptions: [@int main() { try { run_program(); } catch( error & e ) { //handle error } catch( ...) { std::cerr << "Unhandled exception!" << std::endl << boost:: + 1 + + 0 + + -20 + + + 2 + (); } }@] + + + + + 0 + + -21 @@ -6535,7 +6749,7 @@ 0 - -20 + -22 @@ -6573,7 +6787,7 @@ 0 - -18 + -19 2 @@ -6609,7 +6823,7 @@ 0 - -18 + -19 2 @@ -6627,7 +6841,7 @@ 0 - -18 + -19 2 @@ -6663,7 +6877,7 @@ 0 - -5 + -6 2 @@ -6692,7 +6906,7 @@ 0 - -21 + -23 @@ -6732,7 +6946,7 @@ 0 - -22 + -24 @@ -6752,7 +6966,7 @@ 0 - -23 + -25 2 @@ -6806,7 +7020,7 @@ 0 - -23 + -25 2 @@ -6815,7 +7029,7 @@ 0 - -23 + -25 2 @@ -6833,7 +7047,7 @@ 0 - -18 + -19 2 @@ -6851,7 +7065,7 @@ 0 - -13 + -14 2 @@ -6862,7 +7076,7 @@ 0 - -23 + -25 @@ -6893,7 +7107,7 @@ 0 - -24 + -26 @@ -6904,7 +7118,7 @@ 0 - -24 + -26 2 @@ -6913,7 +7127,7 @@ 0 - -24 + -26 2 @@ -6922,7 +7136,7 @@ 0 - -24 + -26 2 @@ -6931,7 +7145,7 @@ 0 - -24 + -26 2 @@ -6940,7 +7154,7 @@ 0 - -24 + -26 2 @@ -6949,7 +7163,7 @@ 0 - -24 + -26 2 @@ -6958,7 +7172,7 @@ 0 - -6 + -8 2 @@ -6978,7 +7192,7 @@ 0 - -25 + -27 @@ -7000,7 +7214,7 @@ 0 - -26 + -28 @@ -7063,95 +7277,6 @@ :). - - - 0 - - -27 - - - - 7 - 2 - (:auto !!!:) (:include synopsis:) This macro takes an exception object, records BOOST_CURRENT_FUNCTION, __FILE__ and __LINE__ in it, and forwards it to - 1 - - 0 - - -40 - - - 2 - . To recover this information at the catch site, use - 1 - - 0 - - -37 - - - 2 - ; the information is also included in the message returned by - 1 - - 0 - - -5 - - - 2 - . - - - - - 0 - - -28 - - - - 9 - 2 - (:auto !!!:) (:include synopsis:) !!!!Requirements: This function must not be called outside of a catch block. !!!!Returns: If the current exception object can be converted to boost::(:link - 1 - - 0 - - -43 - - - 2 - :) or std::exception, this function returns the same string value returned by (:link - 1 - - 0 - - -5 - - - 2 - :) for the current exception object. Otherwise, an unspecified non-empty string is returned. Typical use is to call - 1 - - 0 - - -28 - - - 2 - from a top-level function to output diagnostic information about unhandled exceptions: [@int main() { try { run_program(); } catch( error & e ) { //handle error } catch( ...) { std::cerr << "Unhandled exception!" << std::endl << boost:: - 1 - - 0 - - -28 - - - 2 - (); } }@] - - 0 @@ -7159,6 +7284,19 @@ -29 + + 1 + 2 + (:auto !!:) (:pagelist fmt="index" tags="function":) + + + + + 0 + + -30 + + 45 2 @@ -7167,7 +7305,7 @@ 0 - -14 + -15 2 @@ -7176,7 +7314,7 @@ 0 - -14 + -15 2 @@ -7257,7 +7395,7 @@ 0 - -33 + -34 2 @@ -7266,7 +7404,7 @@ 0 - -33 + -34 2 @@ -7311,7 +7449,7 @@ 0 - -19 + -21 2 @@ -7320,7 +7458,7 @@ 0 - -19 + -21 2 @@ -7367,7 +7505,7 @@ 0 - -30 + -31 @@ -7461,7 +7599,7 @@ 0 - -31 + -32 @@ -7474,7 +7612,7 @@ 0 - -32 + -33 @@ -7505,7 +7643,7 @@ 0 - -33 + -34 @@ -7518,7 +7656,7 @@ 0 - -34 + -35 @@ -7529,26 +7667,13 @@ 0 - -5 + -6 2 :) function, as used in ''libs/exception/example/example_io.cpp:'' [@example_io.cpp(83): Throw in function class boost::shared_ptr<struct _iobuf> __cdecl my_fopen(const char *,const char *) Dynamic exception type: class boost::exception_detail::clone_impl<class fopen_error> std::exception::what: example_io error [struct tag_errno *] = 2, OS says "No such file or directory" [struct tag_file_name *] = tmp1.txt [struct tag_function *] = fopen [struct tag_open_mode *] = rb@] - - - 0 - - -35 - - - - 1 - 2 - (:auto !!:) (:pagelist fmt="index" tags="function":) - - 0 @@ -7564,7 +7689,7 @@ 0 - -24 + -26 2 @@ -7573,7 +7698,7 @@ 0 - -6 + -8 2 @@ -7613,7 +7738,7 @@ 0 - -18 + -19 2 @@ -7640,7 +7765,7 @@ 0 - -7 + -10 2 @@ -7680,7 +7805,7 @@ 0 - -20 + -22 2 @@ -7689,7 +7814,7 @@ 0 - -13 + -14 2 @@ -7698,7 +7823,7 @@ 0 - -22 + -24 2 @@ -7716,7 +7841,7 @@ 0 - -21 + -23 2 @@ -7734,7 +7859,7 @@ 0 - -10 + -5 2 @@ -7752,7 +7877,7 @@ 0 - -27 + -7 2 @@ -7779,7 +7904,7 @@ 0 - -18 + -19 2 @@ -7788,7 +7913,7 @@ 0 - -12 + -13 2 @@ -7806,7 +7931,7 @@ 0 - -23 + -25 2 @@ -7815,7 +7940,16 @@ 0 - -24 + -26 + + + 2 + :) ###(:link + 1 + + 0 + + -9 2 @@ -7833,16 +7967,7 @@ 0 - -6 - - - 2 - :) ###(:link - 1 - - 0 - - -15 + -16 2 @@ -7869,7 +7994,7 @@ 0 - -5 + -6 2 @@ -7878,7 +8003,7 @@ 0 - -28 + -20 2 @@ -7887,7 +8012,7 @@ 0 - -31 + -32 2 @@ -7896,7 +8021,7 @@ 0 - -29 + -30 2 @@ -7923,7 +8048,7 @@ 0 - -35 + -29 2 @@ -7941,7 +8066,7 @@ 0 - -7 + -10 2 @@ -7950,7 +8075,7 @@ 0 - -17 + -18 2 @@ -7981,7 +8106,7 @@ 0 - -8 + -9 2 @@ -8017,7 +8142,7 @@ 0 - -9 + -11 2 @@ -8048,7 +8173,7 @@ 0 - -8 + -9 2 @@ -8057,7 +8182,7 @@ 0 - -23 + -25 2 @@ -8102,7 +8227,7 @@ 0 - -5 + -6 2 @@ -8146,7 +8271,7 @@ 0 - -21 + -23 2 @@ -8195,7 +8320,7 @@ 0 - -18 + -19 2 @@ -8244,7 +8369,7 @@ 0 - -18 + -19 2 @@ -8316,7 +8441,7 @@ 0 - -18 + -19 2 @@ -8343,7 +8468,7 @@ 0 - -18 + -19 2 @@ -8361,7 +8486,7 @@ 0 - -16 + -17 2 @@ -8428,7 +8553,7 @@ 0 - -18 + -19 2 @@ -8495,7 +8620,7 @@ 0 - -18 + -19 2 @@ -8566,7 +8691,7 @@ 0 - -8 + -9 2 @@ -8575,7 +8700,7 @@ 0 - -8 + -9 2 @@ -8765,6 +8890,55 @@ (:auto !!:) !!!Synopsis (:include synopsis:) + + + 0 + + -61 + + + + 9 + 2 + (:auto !!!:) (:include synopsis:) This + 1 + + 0 + + -44 + + + 2 + typedef is used by + 1 + + 0 + + -8 + + + 2 + if it defaults to returning an + 1 + + 0 + + -26 + + + 2 + that refers to an object of type + 1 + + 0 + + -36 + + + 2 + , to record in it the std::type_info of the original exception object. + + @@ -8772,13 +8946,13 @@ throws - 65 + 66 reno_layer - 56 + 57 0 @@ -8853,9 +9027,7 @@ - 1 - 2 - !!!!Throws: Any exception emitted by v's copy constructor. + 0 @@ -8868,7 +9040,7 @@ 1 2 - !!!!Throws: std::bad_alloc, or any exception emitted by T1..TN copy constructor. + !!!!Throws: Any exception emitted by v's copy constructor. @@ -8879,7 +9051,9 @@ - 0 + 1 + 2 + !!!!Throws: std::bad_alloc, or any exception emitted by T1..TN copy constructor. @@ -8934,9 +9108,7 @@ - 1 - 2 - !!!!Throws: std::bad_alloc, or any exception emitted by the T copy constructor. + 0 @@ -8947,7 +9119,9 @@ - 0 + 1 + 2 + !!!!Throws: std::bad_alloc, or any exception emitted by the T copy constructor. @@ -9401,6 +9575,17 @@ 0 + + + 0 + + -61 + + + + 0 + + @@ -9408,13 +9593,13 @@ synopsis - 66 + 67 reno_layer - 56 + 57 0 @@ -9423,18 +9608,7 @@ - 3 - 2 - `#include <(:link - 1 - - 0 - - -33 - - - 2 - :)>\\ [@namespace boost { (:include decl pre_indent="4":) }@] + 0 @@ -9452,207 +9626,7 @@ 0 - -57 - - - 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] - - - - - 0 - - -7 - - - - 0 - - - - - 0 - - -8 - - - - 3 - 2 - `#include < - 1 - - 0 - - -19 - - - 2 - > [@namespace boost { (:include decl pre_indent="4":) }@] - - - - - 0 - - -9 - - - - 0 - - - - - 0 - - -10 - - - - 0 - - - - - 0 - - -11 - - - - 3 - 2 - `#include <(:link - 1 - - 0 - - -56 - - - 2 - :)> [@(:include decl:)@] - - - - - 0 - - -12 - - - - 5 - 2 - `#include <(:link - 1 - - 0 - - -49 - - - 2 - :)> [@namespace boost { (:include - 1 - - 0 - - -12 - - - 2 - decl pre_indent="4":) }@] - - - - - 0 - - -13 - - - - 0 - - - - - 0 - - -14 - - - - 1 - 2 - [@namespace boost { (:include api pre_indent="4":) }@] - - - - - 0 - - -15 - - - - 3 - 2 - `#include <(:link - 1 - - 0 - - -57 - - - 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] - - - - - 0 - - -16 - - - - 1 - 2 - [@#include <boost/shared_ptr.hpp> namespace boost { (:include api pre_indent="4":) }@] - - - - - 0 - - -17 - - - - 0 - - - - - 0 - - -18 - - - - 3 - 2 - `#include <(:link - 1 - - 0 - - -56 + -34 2 @@ -9663,128 +9637,7 @@ 0 - -19 - - - - 3 - 2 - [@#include < - 1 - - 0 - - -14 - - - 2 - > namespace boost { (:include api pre_indent="4":) }@] - - - - - 0 - - -20 - - - - 0 - - - - - 0 - - -21 - - - - 0 - - - - - 0 - - -22 - - - - 0 - - - - - 0 - - -23 - - - - 3 - 2 - `#include < - 1 - - 0 - - -52 - - - 2 - > [@namespace boost { (:include decl pre_indent="4":) }@] - - - - - 0 - - -24 - - - - 3 - 2 - `#include <(:link - 1 - - 0 - - -57 - - - 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] - - - - - 0 - - -25 - - - - 0 - - - - - 0 - - -26 - - - - 0 - - - - - 0 - - -27 + -7 @@ -9806,7 +9659,7 @@ 0 - -28 + -8 @@ -9817,13 +9670,345 @@ 0 - -33 + -57 + + + 2 + :)> [@namespace boost { (:include decl pre_indent="4":) }@] + + + + + 0 + + -9 + + + + 3 + 2 + `#include < + 1 + + 0 + + -21 + + + 2 + > [@namespace boost { (:include decl pre_indent="4":) }@] + + + + + 0 + + -10 + + + + 0 + + + + + 0 + + -11 + + + + 0 + + + + + 0 + + -12 + + + + 3 + 2 + `#include <(:link + 1 + + 0 + + -56 + + + 2 + :)> [@(:include decl:)@] + + + + + 0 + + -13 + + + + 5 + 2 + `#include <(:link + 1 + + 0 + + -49 + + + 2 + :)> [@namespace boost { (:include + 1 + + 0 + + -13 + + + 2 + decl pre_indent="4":) }@] + + + + + 0 + + -14 + + + + 0 + + + + + 0 + + -15 + + + + 1 + 2 + [@namespace boost { (:include api pre_indent="4":) }@] + + + + + 0 + + -16 + + + + 3 + 2 + `#include <(:link + 1 + + 0 + + -57 + + + 2 + :)> [@namespace boost { (:include decl pre_indent="4":) }@] + + + + + 0 + + -17 + + + + 1 + 2 + [@#include <boost/shared_ptr.hpp> namespace boost { (:include api pre_indent="4":) }@] + + + + + 0 + + -18 + + + + 0 + + + + + 0 + + -19 + + + + 3 + 2 + `#include <(:link + 1 + + 0 + + -56 2 :)>\\ [@namespace boost { (:include decl pre_indent="4":) }@] + + + 0 + + -20 + + + + 3 + 2 + `#include <(:link + 1 + + 0 + + -34 + + + 2 + :)>\\ [@namespace boost { (:include decl pre_indent="4":) }@] + + + + + 0 + + -21 + + + + 3 + 2 + [@#include < + 1 + + 0 + + -15 + + + 2 + > namespace boost { (:include api pre_indent="4":) }@] + + + + + 0 + + -22 + + + + 0 + + + + + 0 + + -23 + + + + 0 + + + + + 0 + + -24 + + + + 0 + + + + + 0 + + -25 + + + + 3 + 2 + `#include < + 1 + + 0 + + -52 + + + 2 + > [@namespace boost { (:include decl pre_indent="4":) }@] + + + + + 0 + + -26 + + + + 3 + 2 + `#include <(:link + 1 + + 0 + + -57 + + + 2 + :)> [@namespace boost { (:include decl pre_indent="4":) }@] + + + + + 0 + + -27 + + + + 0 + + + + + 0 + + -28 + + + + 0 + + 0 @@ -9853,6 +10038,17 @@ -31 + + 0 + + + + + 0 + + -32 + + 3 2 @@ -9872,7 +10068,7 @@ 0 - -32 + -33 @@ -9894,7 +10090,7 @@ 0 - -33 + -34 @@ -9912,17 +10108,6 @@ decl pre_indent="4":) (:include api pre_indent="4":) }@] - - - 0 - - -34 - - - - 0 - - 0 @@ -10061,7 +10246,7 @@ 0 - -14 + -15 2 @@ -10206,7 +10391,7 @@ 0 - -14 + -15 2 @@ -10263,7 +10448,7 @@ 0 - -14 + -15 2 @@ -10285,7 +10470,7 @@ 0 - -14 + -15 2 @@ -10329,6 +10514,28 @@ [@namespace boost { (:include api pre_indent="4":) }@] + + + 0 + + -61 + + + + 3 + 2 + `#include < + 1 + + 0 + + -57 + + + 2 + > [@namespace boost { (:include decl pre_indent="4":) }@] + + @@ -10339,14 +10546,14 @@ - 67 + 68 reno_context_map - 56 + 57 -5 @@ -10515,11 +10722,14 @@ -60 + + -61 + - 56 + 57 @@ -10568,7 +10778,7 @@ - -13 + -14 @@ -10619,7 +10829,7 @@ - -19 + -21 @@ -10636,7 +10846,7 @@ - -20 + -22 @@ -10670,7 +10880,7 @@ - -21 + -23 @@ -10687,7 +10897,7 @@ - -17 + -18 @@ -10704,7 +10914,7 @@ - -35 + -29 @@ -10772,7 +10982,35 @@ - -29 + -30 + + + + + + + 2 + 7BD35FAECA8BDD2E78E08EB02CF7F36163AE21D6859C73267AC53A05E5797909 + 2464409114 + 3681 + 502 + DBE4A27FCB9297C314B3F52A460B55A5540B2A3F173D48C8CD042388D19253E2 + 263970566 + 3656 + 26 + + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + -6 @@ -10796,7 +11034,7 @@ - -9 + -11 @@ -10819,6 +11057,30 @@ 0 + + -35 + + + + + + + 1 + B26AA4D68CD040C376C32D7D469C926EC02DB8F76A3DA3275D14CCABCA02902C + 1262147856 + 4435 + 323 + + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + -34 @@ -10844,7 +11106,7 @@ - -22 + -24 @@ -10872,22 +11134,18 @@ - -31 + -32 - 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 - 9F3671DA5E8AB414F1FBA3B160D49134EAEE8DFF33E95376EDB41534E916FF38 - 2436936467 - 718 - 1496 + 1 + ACBC114551B7A04441A0452AB97D25519D6D2AE97DA6C5DDBC2E7C4B9002F847 + 4238517159 + 11368 + 323 @@ -10900,119 +11158,7 @@ - -36 - - - - - - - 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 - E23085202D084CBB50F289988A6A592F06D923B77D0AB25D7A98A7188DF5BE3B - 1414247481 - 766 - 7388 - - - - - - 0 - ../../../../boost/exception_ptr.hpp - 0 - 0 - - - - -6 - - - - - - - 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 - F86EB07D04CD0D0645080D1121DA899746D0C45137E17E1D9BE605E75396F047 - 1983537541 - 1346 - 148 - - - - - - 0 - ../../../../boost/exception_ptr.hpp - 0 - 0 - - - - -24 - - - - - - - 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 - 0E9DF8366080712A816BE91ABCEF1E2044145B63D75B0B995B537900F378189E - 1069696031 - 255 - 8463 - - - - - - 0 - ../../../../boost/exception_ptr.hpp - 0 - 0 - - - - -41 - - - - - - - 2 - 9748FFBBC9F02FEB97E0BA1E6280C51FFF5D7F217F0F12EE8ED29F6BE5CCCE44 - 2533933282 - 8724 - 615 - 0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4 - 2078296250 - 305 - 8156 - - - - - - 0 - ../../../../boost/exception_ptr.hpp - 0 - 0 - - - - -15 + -57 @@ -11064,7 +11210,7 @@ - -10 + -5 @@ -11116,7 +11262,7 @@ - -11 + -12 @@ -11144,7 +11290,7 @@ - -18 + -19 @@ -11171,30 +11317,6 @@ -46 - - - - - 1 - 05698FEF1D553EDBC15212673561F5436DF771AA5488C8ED8164D303078DE08E - 119041194 - 1978 - 91 - - - - - - 0 - ../../../../boost/throw_exception.hpp - 0 - 0 - - - - -58 - - @@ -11227,7 +11349,7 @@ 612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A 1770110914 587 - 1462 + 1467 60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D 3929437933 361 @@ -11255,7 +11377,7 @@ 612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A 1770110914 587 - 1462 + 1467 60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D 3929437933 361 @@ -11276,7 +11398,7 @@ - -7 + -10 @@ -11392,7 +11514,7 @@ - -32 + -33 @@ -11416,87 +11538,7 @@ - -16 - - - - - - - 2 - F7537DC10435D0F7CC368E0FC747B2B1169E1CE60FCBAE8AC86F2256667C95B2 - 3301865866 - 4151 - 557 - D747B0A0953B72747224DE7856DB793A4BFF7B73793873CF22810FCB304A7310 - 505472020 - 3665 - 26 - - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - -5 - - - - - - - 2 - F7537DC10435D0F7CC368E0FC747B2B1169E1CE60FCBAE8AC86F2256667C95B2 - 3301865866 - 4151 - 557 - 90ECFCA1DA49DBB79A23B5998A39D8A6B122632524671C56DA10F96A1BA07CD2 - 1653443895 - 452 - 3693 - - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - -28 - - - - - - - 1 - E127BAFA15A5B7031C0DD1817993041600F935B71E7BDE42E1F4AF50959B6AB3 - 2166367611 - 9016 - 323 - - - - - - 0 - ../../../../boost/exception_ptr.hpp - 0 - 0 - - - - -57 + -17 @@ -11520,7 +11562,7 @@ - -14 + -15 @@ -11548,7 +11590,7 @@ - -25 + -27 @@ -11576,7 +11618,7 @@ - -8 + -9 @@ -11604,7 +11646,7 @@ - -23 + -25 @@ -11723,7 +11765,7 @@ 04DDC793002AFCF4F4166D250C67D09B6FE8B86224318ED7847AD6EC423B70CA 922651615 433 - 1027 + 1032 @@ -11736,7 +11778,31 @@ - -27 + -7 + + + + + + + 1 + BEFF039468E0E9A3719E5CB51DA9710812D146B587BAF573D1670908BB97C0CA + 35548578 + 1983 + 91 + + + + + + 0 + ../../../../boost/throw_exception.hpp + 0 + 0 + + + + -58 @@ -11760,31 +11826,175 @@ - -30 + -31 - 1 - 9E3988368193B192FA2426DE2B97FA8D0DA8A9FFECAD6A010FE1B5CD9662FAE9 - 109897168 - 4491 - 227 + 2 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 + 6B3B617AC518A2177BDB89656E726B4E4D79577E289130493A61BAE24FB64838 + 3173127726 + 1101 + 1777 0 - ../../../../boost/exception/diagnostic_information.hpp + ../../../../boost/exception_ptr.hpp 0 0 - -33 + -36 + + + + + + + 2 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 + E23085202D084CBB50F289988A6A592F06D923B77D0AB25D7A98A7188DF5BE3B + 1414247481 + 766 + 9687 + + + + + + 0 + ../../../../boost/exception_ptr.hpp + 0 + 0 + + + + -8 + + + + + + + 2 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 + F86EB07D04CD0D0645080D1121DA899746D0C45137E17E1D9BE605E75396F047 + 1983537541 + 1346 + 429 + + + + + + 0 + ../../../../boost/exception_ptr.hpp + 0 + 0 + + + + -26 + + + + + + + 2 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 + 1516D0B7E11CBEB60CE4222565ACCAFF2E9857A8A505C1C26E2AE90087250581 + 3624753243 + 279 + 26 + + + + + + 0 + ../../../../boost/exception_ptr.hpp + 0 + 0 + + + + -61 + + + + + + + 2 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 + 0E9DF8366080712A816BE91ABCEF1E2044145B63D75B0B995B537900F378189E + 1069696031 + 255 + 10762 + + + + + + 0 + ../../../../boost/exception_ptr.hpp + 0 + 0 + + + + -41 + + + + + + + 2 + E73A20FFCA320C2129509D6916B42B4619582DCB5E6B204802AFA5DB176267EA + 1330392285 + 11023 + 668 + 0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4 + 2078296250 + 305 + 10455 + + + + + + 0 + ../../../../boost/exception_ptr.hpp + 0 + 0 + + + + -16 @@ -11840,7 +12050,7 @@ - -12 + -13 @@ -11864,7 +12074,31 @@ - -26 + -28 + + + + + + + 1 + 683D57B85DAEB8F69927D079F2038E0C64853D2B8A8CB5273B76ACAD5901DDFD + 878883983 + 573 + 4185 + + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + -20 @@ -11874,14 +12108,14 @@ - 68 + 69 tag_index - 47 + 48 1 @@ -11895,7 +12129,7 @@ -5 - diagnostic_information free function + diagnostic_information tutorial @@ -11904,7 +12138,16 @@ -6 - exception_ptr free function + diagnostic_information free function + + + + 0 + + -7 + + + macro @@ -11922,16 +12165,7 @@ -9 - noindex tutorial - - - - 0 - - -10 - - - diagnostic_information tutorial + exception_ptr free function @@ -11940,7 +12174,7 @@ -11 - function member + noindex tutorial @@ -11949,7 +12183,7 @@ -12 - error_info free function + function member @@ -11958,7 +12192,7 @@ -13 - tutorial + error_info free function @@ -11967,7 +12201,7 @@ -14 - + tutorial @@ -11976,7 +12210,7 @@ -15 - exception_ptr free function + @@ -11985,16 +12219,16 @@ -16 - error_info + exception_ptr free function 0 - -18 + -17 - error_info free function + error_info @@ -12003,26 +12237,26 @@ -19 - exception_ptr - - - - 0 - - -22 - - - tutorial - - - - 0 - - -23 - - error_info free function + + + 0 + + -20 + + + function + + + + 0 + + -21 + + + exception_ptr + 0 @@ -12030,7 +12264,7 @@ -24 - type + tutorial @@ -12039,7 +12273,7 @@ -25 - function + error_info free function @@ -12048,7 +12282,7 @@ -26 - noalso noindex tutorial + type @@ -12057,22 +12291,13 @@ -27 - macro - - - - 0 - - -28 - - function 0 - -30 + -28 noalso noindex tutorial @@ -12084,7 +12309,7 @@ -31 - function + noalso noindex tutorial @@ -12093,7 +12318,7 @@ -32 - function member + function @@ -12102,6 +12327,15 @@ -33 + function member + + + + 0 + + -34 + + @@ -12302,6 +12536,15 @@ + + + 0 + + -61 + + + type + diff --git a/doc/source/html_prefix.txt b/doc/source/html_prefix.txt index adfe8f7..7c3418f 100644 --- a/doc/source/html_prefix.txt +++ b/doc/source/html_prefix.txt @@ -12,7 +12,7 @@

Boost Exception

diff --git a/doc/synopsis.html b/doc/synopsis.html index e9ecfe5..2cfce46 100644 --- a/doc/synopsis.html +++ b/doc/synopsis.html @@ -21,7 +21,7 @@

Synopsis

List of documented definitions, declarations and includes by header file:

-

#include <boost/exception/exception.hpp>

+

#include <boost/exception/exception.hpp>

namespace
 boost
     {
@@ -42,15 +42,15 @@ boost
     typedef error_info<struct tag_throw_file,char const *> throw_file;
     typedef error_info<struct tag_throw_line,int> throw_line;
     }
-

#include <boost/exception/error_info.hpp>

+

#include <boost/exception/error_info.hpp>

namespace
 boost
     {
     template <class Tag,class T>
     class error_info;
     }
-

#include <boost/exception/info.hpp>

-
#include <boost/exception/exception.hpp>
+

#include <boost/exception/info.hpp>

+
#include <boost/exception/exception.hpp>
 
 namespace
 boost
@@ -70,8 +70,8 @@ boost
     template <class E, class Tag, class T>
     E const & operator<<( E const & x, error_info<Tag,T> const & v );
     }
-

#include <boost/exception/info_tuple.hpp>

-
#include <boost/exception/info.hpp>
+

#include <boost/exception/info_tuple.hpp>

+
#include <boost/exception/info.hpp>
 #include <boost/tuple/tuple.hpp>
 
 namespace
@@ -84,8 +84,8 @@ boost
             ...,
             error_info<TagN,TN> > const & v );
     }
-

#include <boost/exception/enable_error_info.hpp>

-
#include <boost/exception/exception.hpp>
+

#include <boost/exception/enable_error_info.hpp>

+
#include <boost/exception/exception.hpp>
 
 namespace
 boost
@@ -93,7 +93,7 @@ boost
     template <class T>
     ---unspecified--- enable_error_info( T const & x );
     }
-

#include <boost/exception/diagnostic_information.hpp>

+

#include <boost/exception/diagnostic_information.hpp>

#include <string>
 
 namespace
@@ -113,8 +113,8 @@ boost
     template <class E>
     E * current_exception_cast();
     }
-

#include <boost/exception_ptr.hpp>

-
#include <boost/exception/exception.hpp>
+

#include <boost/exception_ptr.hpp>

+
#include <boost/exception/exception.hpp>
 
 namespace
 boost
@@ -127,6 +127,8 @@ boost
         ---unspecified---
         };    
     
+    typedef error_info<struct tag_original_exception_type,std::type_info const *> original_exception_type;    
+    
     typedef ---unspecified--- exception_ptr;    
     
     template <class T>
@@ -136,8 +138,8 @@ boost
     
     void rethrow_exception( exception_ptr const & ep );
     }
-

#include <boost/exception/enable_current_exception.hpp>

-
#include <boost/exception/exception.hpp>
+

#include <boost/exception/enable_current_exception.hpp>

+
#include <boost/exception/exception.hpp>
 
 namespace
 boost
@@ -145,15 +147,15 @@ boost
     template <class T>
     ---unspecified--- enable_current_exception( T const & e );
     }
-

#include <boost/throw_exception.hpp>

+

#include <boost/throw_exception.hpp>

#if !defined( BOOST_EXCEPTION_DISABLE ) - #include <boost/exception/exception.hpp> + #include <boost/exception/exception.hpp> #include <boost/current_function.hpp> #define BOOST_THROW_EXCEPTION(x)\ ::boost::throw_exception( ::boost::enable_error_info(x) <<\ - ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\ - ::boost::throw_file(__FILE__) <<\ - ::boost::throw_line((int)__LINE__) ) + ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\ + ::boost::throw_file(__FILE__) <<\ + ::boost::throw_line((int)__LINE__) ) #else #define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x) #endif @@ -168,14 +170,14 @@ boost void throw_exception( E const & e ); #endif }
-

#include <boost/exception.hpp>

-

See Also:

Boost Exception
diff --git a/doc/throw_exception.html b/doc/throw_exception.html index e75c902..895bb09 100644 --- a/doc/throw_exception.html +++ b/doc/throw_exception.html @@ -21,7 +21,7 @@

throw_exception

-

#include <boost/throw_exception.hpp>

+

#include <boost/throw_exception.hpp>

namespace
 boost
     {
@@ -44,7 +44,7 @@ boost
 

See Also:

BOOST_THROW_EXCEPTION
Boost Exception
-
boost/throw_exception.hpp
+
boost/throw_exception.hpp
Configuration Macros
enable_current_exception
Frequently Asked Questions
diff --git a/doc/tuple_operator_shl.html b/doc/tuple_operator_shl.html index 4efa9e7..4f93466 100644 --- a/doc/tuple_operator_shl.html +++ b/doc/tuple_operator_shl.html @@ -21,7 +21,7 @@

tuple/operator<<

-

#include <boost/exception/info_tuple.hpp>

+

#include <boost/exception/info_tuple.hpp>

namespace
 boost
     {
@@ -43,7 +43,7 @@ boost
 
diff --git a/doc/tutorial_diagnostic_information.html b/doc/tutorial_diagnostic_information.html index e70896d..a1ec172 100644 --- a/doc/tutorial_diagnostic_information.html +++ b/doc/tutorial_diagnostic_information.html @@ -27,7 +27,7 @@
  • additional platform-specific diagnostic information.
  • The returned string is not presentable as a friendly user message, but because it is generated automatically, it is useful for debugging or logging purposes. Here is an example:

    -
    #include <boost/exception.hpp>
    +
    #include <boost/exception.hpp>
     #include <iostream>
     
     void f(); //throws unknown types that derive from boost::exception.
    diff --git a/doc/tutorial_enable_error_info.html b/doc/tutorial_enable_error_info.html
    index 56a59d5..1dceb6d 100644
    --- a/doc/tutorial_enable_error_info.html
    +++ b/doc/tutorial_enable_error_info.html
    @@ -22,7 +22,7 @@
     

    Integrating Boost Exception in Existing Exception Class Hierarchies

    Some exception hierarchies can not be modified to make boost::exception a base type. In this case, the enable_error_info function template can be used to make exception objects derive from boost::exception anyway. Here is an example:

    -
    #include <boost/exception.hpp>
    +
    #include <boost/exception.hpp>
     #include <stdexcept>
     
     typedef boost::error_info<struct tag_std_range_min,size_t> std_range_min;
    diff --git a/doc/tutorial_exception_ptr.html b/doc/tutorial_exception_ptr.html
    index ad17c51..85fe37e 100644
    --- a/doc/tutorial_exception_ptr.html
    +++ b/doc/tutorial_exception_ptr.html
    @@ -27,7 +27,7 @@
     

    Using enable_current_exception at the Time of the Throw

    Here is how cloning can be enabled in a throw-expression (15.1):

    -
    #include <boost/exception/info.hpp>
    +
    #include <boost/exception/info.hpp>
     #include <stdio.h>
     #include <errno.h>
     
    @@ -46,7 +46,7 @@ file_read( FILE * f, void * buffer, size_t size )
     

    Cloning and Re-Throwing an Exception

    When you catch an exception, you can call current_exception to get an exception_ptr object:

    -
    #include <boost/exception_ptr.hpp>
    +
    #include <boost/exception_ptr.hpp>
     #include <boost/thread.hpp>
     #include <boost/bind.hpp>
     
    diff --git a/doc/tutorial_transporting_data.html b/doc/tutorial_transporting_data.html
    index a0f5f34..0ab9f62 100644
    --- a/doc/tutorial_transporting_data.html
    +++ b/doc/tutorial_transporting_data.html
    @@ -29,7 +29,7 @@
     

    Adding of Arbitrary Data at the Point of the Throw

    The following example demonstrates how errno can be stored in exception objects using Boost Exception:

    -
    #include <boost/exception.hpp>
    +
    #include <boost/exception.hpp>
     #include <errno.h>
     #include <iostream>
     
    @@ -75,7 +75,7 @@ file_read( FILE * f, void * buffer, size_t size )
         }

    How can the file_read function pass a file name to the exception type constructor? All it has is a FILE handle.

    Using boost::exception allows us to free the file_read function from the burden of storing the file name in exceptions it throws:

    -
    #include <boost/exception.hpp>
    +
    #include <boost/exception.hpp>
     #include <stdio.h>
     #include <errno.h>
     
    @@ -90,7 +90,7 @@ file_read( FILE * f, void * buffer, size_t size )
             throw file_read_error() << errno_info(errno);
         }

    If file_read detects a failure, it throws an exception which contains the information that is available at the time, namely the errno. Other relevant information, such as the file name, can be added in a context higher up the call stack, where it is known naturally:

    -
    #include <boost/exception.hpp>
    +
    #include <boost/exception.hpp>
     #include <boost/shared_ptr.hpp>
     #include <stdio.h>
     #include <string>
    @@ -121,7 +121,7 @@ parse_file( char const * file_name )
     

    Adding Grouped Data to Exceptions

    The code snippet below demonstrates how boost::tuple can be used to bundle the name of the function that failed, together with the reported errno so that they can be added to exception objects more conveniently together:

    -
    #include <boost/exception/info_tuple.hpp>
    +
    #include <boost/exception/info_tuple.hpp>
     #include <boost/shared_ptr.hpp>
     #include <stdio.h>
     #include <string>
    diff --git a/doc/types.html b/doc/types.html
    index 7428c84..9505d28 100644
    --- a/doc/types.html
    +++ b/doc/types.html
    @@ -26,6 +26,8 @@
     

    error_info::value_type

    exception

    exception_ptr

    +

    o

    +

    original_exception_type

    u

    unknown_exception

    diff --git a/doc/unknown_exception.html b/doc/unknown_exception.html index 270a7d9..8d1b1f4 100644 --- a/doc/unknown_exception.html +++ b/doc/unknown_exception.html @@ -21,7 +21,7 @@

    unknown_exception

    -

    #include <boost/exception_ptr.hpp>

    +

    #include <boost/exception_ptr.hpp>

    namespace
     boost
         {
    @@ -37,9 +37,10 @@ boost
     
    diff --git a/include/boost/exception_ptr.hpp b/include/boost/exception_ptr.hpp index 5fccb6f..c7a8ff5 100644 --- a/include/boost/exception_ptr.hpp +++ b/include/boost/exception_ptr.hpp @@ -11,6 +11,7 @@ #error This header requires exception handling to be enabled. #endif #include +#include #include #include #include @@ -20,6 +21,17 @@ namespace boost { +#ifndef BOOST_NO_RTTI + typedef error_info original_exception_type; + + inline + std::string + to_string( original_exception_type const & x ) + { + return x.value()->name(); + } +#endif + class exception_ptr; exception_ptr current_exception(); void rethrow_exception( exception_ptr const & ); @@ -92,10 +104,17 @@ boost { } + explicit + unknown_exception( std::exception const & e ) + { + add_original_type(e); + } + explicit unknown_exception( boost::exception const & e ): boost::exception(e) { + add_original_type(e); } ~unknown_exception() throw() @@ -115,6 +134,15 @@ boost { throw*this; } + + template + void + add_original_type( E const & e ) + { +#ifndef BOOST_NO_RTTI + (*this) << original_exception_type(&typeid(e)); +#endif + } }; namespace @@ -133,12 +161,14 @@ boost current_exception_std_exception_wrapper( T const & e1 ): T(e1) { + add_original_type(e1); } current_exception_std_exception_wrapper( T const & e1, boost::exception const & e2 ): T(e1), boost::exception(e2) { + add_original_type(e1); } ~current_exception_std_exception_wrapper() throw() @@ -158,6 +188,15 @@ boost { throw *this; } + + template + void + add_original_type( E const & e ) + { +#ifndef BOOST_NO_RTTI + (*this) << original_exception_type(&typeid(e)); +#endif + } }; #ifdef BOOST_NO_RTTI @@ -194,23 +233,23 @@ boost current_exception_std_exception( T const & e1 ) { if( boost::exception const * e2 = get_boost_exception(&e1) ) - return shared_ptr(new current_exception_std_exception_wrapper(e1,*e2)); + return shared_ptr const>(new current_exception_std_exception_wrapper(e1,*e2)); else - return shared_ptr(new current_exception_std_exception_wrapper(e1)); + return shared_ptr const>(new current_exception_std_exception_wrapper(e1)); } inline shared_ptr current_exception_unknown_exception() { - return shared_ptr(new unknown_exception()); + return shared_ptr(new unknown_exception()); } inline shared_ptr current_exception_unknown_boost_exception( boost::exception const & e ) { - return shared_ptr(new unknown_exception(e)); + return shared_ptr(new unknown_exception(e)); } inline @@ -220,7 +259,7 @@ boost if( boost::exception const * be = get_boost_exception(&e) ) return current_exception_unknown_boost_exception(*be); else - return current_exception_unknown_exception(); + return shared_ptr(new unknown_exception(e)); } inline diff --git a/test/cloning_test.cpp b/test/cloning_test.cpp index 14c772a..11dea60 100644 --- a/test/cloning_test.cpp +++ b/test/cloning_test.cpp @@ -5,7 +5,6 @@ #include #include -#include #include #include #include @@ -121,6 +120,24 @@ test_std_exception() } } catch( + ... ) + { + BOOST_TEST(false); + } + try + { + rethrow_exception(p); + BOOST_TEST(false); + } + catch( + boost::exception & x ) + { +#ifndef BOOST_NO_RTTI + std::type_info const * const * t=boost::get_error_info(x); + BOOST_TEST(t!=0 && *t!=0 && **t==typeid(T)); +#endif + } + catch( ... ) { BOOST_TEST(false); @@ -173,6 +190,24 @@ test_std_exception_what() } } catch( + ... ) + { + BOOST_TEST(false); + } + try + { + rethrow_exception(p); + BOOST_TEST(false); + } + catch( + boost::exception & x ) + { +#ifndef BOOST_NO_RTTI + std::type_info const * const * t=boost::get_error_info(x); + BOOST_TEST(t!=0 && *t!=0 && **t==typeid(T)); +#endif + } + catch( ... ) { BOOST_TEST(false); @@ -342,8 +377,12 @@ main() BOOST_TEST(false); } catch( - boost::unknown_exception & ) + boost::unknown_exception & e ) { +#ifndef BOOST_NO_RTTI + std::type_info const * const * t=boost::get_error_info(e); + BOOST_TEST(t!=0 && *t!=0 && **t==typeid(derives_std_exception)); +#endif } catch( ... ) @@ -352,15 +391,23 @@ main() } } + test_std_exception_what(); test_std_exception_what(); + test_std_exception_what(); test_std_exception_what(); test_std_exception_what(); + test_std_exception_what(); + test_std_exception_what(); + test_std_exception_what(); + test_std_exception_what(); + test_std_exception_what(); test_std_exception(); #ifndef BOOST_NO_TYPEID test_std_exception(); test_std_exception(); #endif test_std_exception(); + test_std_exception(); try { @@ -384,6 +431,12 @@ main() BOOST_TEST(boost::get_error_info(x)); if( int const * p=boost::get_error_info(x) ) BOOST_TEST(*p==42); +#ifndef BOOST_NO_RTTI + { + std::type_info const * const * t=boost::get_error_info(x); + BOOST_TEST(t && *t && **t==typeid(derives_std_boost_exception)); + } +#endif boost::exception_ptr p = boost::current_exception(); BOOST_TEST(!(p==boost::exception_ptr())); BOOST_TEST(p!=boost::exception_ptr()); @@ -399,6 +452,10 @@ main() BOOST_TEST(boost::get_error_info(x)); if( int const * p=boost::get_error_info(x) ) BOOST_TEST(*p==42); +#ifndef BOOST_NO_RTTI + std::type_info const * const * t=boost::get_error_info(x); + BOOST_TEST(t && *t && **t==typeid(derives_std_boost_exception)); +#endif } catch( ... ) @@ -435,6 +492,12 @@ main() BOOST_TEST(boost::get_error_info(x)); if( int const * p=boost::get_error_info(x) ) BOOST_TEST(*p==42); +#ifndef BOOST_NO_RTTI + { + std::type_info const * const * t=boost::get_error_info(x); + BOOST_TEST(t && *t && **t==typeid(derives_boost_exception)); + } +#endif boost::exception_ptr p = boost::current_exception(); BOOST_TEST(!(p==boost::exception_ptr())); BOOST_TEST(p!=boost::exception_ptr());