diff --git a/doc/BOOST_ERROR_INFO.html b/doc/BOOST_ERROR_INFO.html deleted file mode 100644 index 699e8bc..0000000 --- a/doc/BOOST_ERROR_INFO.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - BOOST_ERROR_INFO - - - -
-
-
-
- -

Boost Exception

-
- - - -

BOOST_ERROR_INFO

-
-

#include <boost/exception/info.hpp>

-
namespace
-boost
-    {
-    typedef error_info<struct tag_throw_function,char const *> throw_function;
-    typedef error_info<struct tag_throw_file,char const *> throw_file;
-    typedef error_info<struct tag_throw_line,int> throw_line;
-    
-    #define BOOST_ERROR_INFO\
-        ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
-        ::boost::throw_file(__FILE__) <<\
-        ::boost::throw_line((int)__LINE__)
-    }
-

This macro is designed to be used with operator<< when throwing a boost::exception, to store information about the location of the throw statement. It can be chained with other error_infos in a single throw expression.

-
- - - - -
-
-
- - diff --git a/doc/boost-exception.html b/doc/boost-exception.html index 26684fc..eb578fd 100644 --- a/doc/boost-exception.html +++ b/doc/boost-exception.html @@ -37,7 +37,6 @@
  • operator<</tuple
  • get_error_info
  • enable_error_info
  • -
  • BOOST_ERROR_INFO
  • N2179 Transporting of Exceptions between Threads
    1. exception_ptr
    2. @@ -49,7 +48,7 @@
  • diagnostic_information
  • -
  • throw_exception
  • +
  • throw_exception, BOOST_THROW_EXCEPTION
  • Headers
    1. boost/exception.hpp
    2. boost/exception/diagnostic_information.hpp
    3. boost/exception/error_info.hpp
    4. @@ -73,10 +72,6 @@ boost class exception { - public: - - virtual char const * diagnostic_information() const throw(); - protected: exception(); @@ -84,6 +79,13 @@ boost ~exception(); }; + template <class Tag,class T> + class error_info; + + typedef error_info<struct tag_throw_function,char const *> throw_function; + typedef error_info<struct tag_throw_file,char const *> throw_file; + typedef error_info<struct tag_throw_line,int> throw_line; + template <class T> ---unspecified--- enable_error_info( T const & x ); @@ -101,15 +103,6 @@ boost error_info( value_type const & ); }; - typedef error_info<struct tag_throw_function,char const *> throw_function; - typedef error_info<struct tag_throw_file,char const *> throw_file; - typedef error_info<struct tag_throw_line,int> throw_line; - - #define BOOST_ERROR_INFO\ - ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\ - ::boost::throw_file(__FILE__) <<\ - ::boost::throw_line((int)__LINE__) - template <class E, class Tag, class T> E const & operator<<( E const & x, error_info<Tag,T> const & v ); @@ -120,8 +113,8 @@ boost ..., error_info<TagN,TN> > const & v ); - template <class T> - std::string diagnostic_information( T const & x ); + class exception; + std::string diagnostic_information( boost::exception const & x ); class unknown_exception: @@ -139,18 +132,26 @@ boost exception_ptr current_exception(); void rethrow_exception( exception_ptr const & ep ); + } +

      #include <boost/throw_exception.hpp>

      +
      #if !defined( BOOST_NO_EXCEPTIONS ) && !defined( BOOST_EXCEPTION_DISABLE )
      +    #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__) )
      +#else
      +    #define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
      +#endif
       
      -    #ifdef BOOST_NO_EXCEPTIONS
      -    
      +#ifdef BOOST_NO_EXCEPTIONS
           void throw_exception( std::exception const & e ); // user defined
      -    
      -    #else
      -    
      +#else
           template <class E>
           void throw_exception( E const & e );
      -    
      -    #endif
      -    }
      +#endif

      Class exception

      exception

      @@ -161,10 +162,6 @@ boost class exception { - public: - - virtual char const * diagnostic_information() const throw(); - protected: exception(); @@ -192,17 +189,6 @@ boost

      Frees all resources associated with a boost::exception object.

      Throws:

      Nothing.

      -

      exception::diagnostic_information

      -
      -
      virtual char const * diagnostic_information() const throw();
      -

      Returns:

      -

      A string representation of all data stored in the boost::exception object by the operator<< function. See "Diagnostic Information" for details.

      -

      Throws:

      -

      Nothing.

      -

      Notes:

      -

    Transporting of Arbitrary Data to the Catch Site

    error_info

    @@ -306,22 +292,6 @@ boost

    Throws:

    Nothing.

    -

    BOOST_ERROR_INFO

    -
    -

    #include <boost/exception/info.hpp>

    -
    namespace
    -boost
    -    {
    -    typedef error_info<struct tag_throw_function,char const *> throw_function;
    -    typedef error_info<struct tag_throw_file,char const *> throw_file;
    -    typedef error_info<struct tag_throw_line,int> throw_line;
    -    
    -    #define BOOST_ERROR_INFO\
    -        ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
    -        ::boost::throw_file(__FILE__) <<\
    -        ::boost::throw_line((int)__LINE__)
    -    }
    -

    This macro is designed to be used with operator<< when throwing a boost::exception, to store information about the location of the throw statement. It can be chained with other error_infos in a single throw expression.

    Transporting of Exceptions between Threads

    exception_ptr

    @@ -434,18 +404,22 @@ boost

    Printing Diagnostic Information

    diagnostic_information

    -

    #include <boost/exception/diagnostic_information.hpp>

    +

    #include <boost/exception/diagnostic_information.hpp> 

    namespace
     boost
         {
    -    template <class T>
    -    std::string diagnostic_information( T const & x );
    +    std::string diagnostic_information( boost::exception const & x );
         }

    Returns:

    -

    Platform-specific diagnostic information about x.

    +

    This function iterates over all data objects stored in the boost::exception through operator<<. The returned string is constructed by converting each data object to string and then concatenating these strings together.

    +

    When the error_info<Tag,T> template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.

    +

    Otherwise, the system attempts overload resolution for s << x, where s is a std::ostringstream and x is of type T. If this is successful, the operator<< overload is used to convert objects of type T to string.

    +

    Otherwise the system is unable to convert objects of type T to string, and an unspecified stub string value is used without issuing a compile error.

    Notes:

    -
    • If dynamic_cast<std::exception const *>(&x) is not null, the returned string includes the output from std::exception::what.
    • -
    • If dynamic_cast<boost::exception const *>(&x) is not null, the returned string includes the output from boost::exception::diagnostic_information.
    • +
      • The format of the returned string is unspecified.
      • +
      • The returned string is not user-friendly.
      • +
      • If dynamic_cast<std::exception const *>(&x) is not null, the returned string includes the output from std::exception::what.
      • +
      • The returned string may include additional platform-specific diagnostic information.

    Throwing Exceptions

    throw_exception

    @@ -455,14 +429,10 @@ boost boost { #ifdef BOOST_NO_EXCEPTIONS - - void throw_exception( std::exception const & e ); // user defined - + void throw_exception( std::exception const & e ); // user defined #else - - template <class E> - void throw_exception( E const & e ); - + template <class E> + void throw_exception( E const & e ); #endif }

    Requirements:

    diff --git a/doc/boost_exception_diagnostic_information_hpp.html b/doc/boost_exception_diagnostic_information_hpp.html index 4285b24..2fe73ba 100644 --- a/doc/boost_exception_diagnostic_information_hpp.html +++ b/doc/boost_exception_diagnostic_information_hpp.html @@ -23,19 +23,19 @@

    Synopsis

    #include <exception>
    +#include <string>
     
     namespace
     boost
         {
    -    template <class T>
    -    std::string diagnostic_information( T const & x );
    +    class exception;    
    +    std::string diagnostic_information( boost::exception const & x );
         }
    diff --git a/doc/diagnostic_information.html b/doc/diagnostic_information.html index 83c55f4..767e50c 100644 --- a/doc/diagnostic_information.html +++ b/doc/diagnostic_information.html @@ -21,24 +21,29 @@

    diagnostic_information

    -

    #include <boost/exception/diagnostic_information.hpp>

    +

    #include <boost/exception/diagnostic_information.hpp> 

    namespace
     boost
         {
    -    template <class T>
    -    std::string diagnostic_information( T const & x );
    +    std::string diagnostic_information( boost::exception const & x );
         }

    Returns:

    -

    Platform-specific diagnostic information about x.

    +

    This function iterates over all data objects stored in the boost::exception through operator<<. The returned string is constructed by converting each data object to string and then concatenating these strings together.

    +

    When the error_info<Tag,T> template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.

    +

    Otherwise, the system attempts overload resolution for s << x, where s is a std::ostringstream and x is of type T. If this is successful, the operator<< overload is used to convert objects of type T to string.

    +

    Otherwise the system is unable to convert objects of type T to string, and an unspecified stub string value is used without issuing a compile error.

    Notes:

    -
    • If dynamic_cast<std::exception const *>(&x) is not null, the returned string includes the output from std::exception::what.
    • -
    • If dynamic_cast<boost::exception const *>(&x) is not null, the returned string includes the output from boost::exception::diagnostic_information.
    • +
      • The format of the returned string is unspecified.
      • +
      • The returned string is not user-friendly.
      • +
      • If dynamic_cast<std::exception const *>(&x) is not null, the returned string includes the output from std::exception::what.
      • +
      • The returned string may include additional platform-specific diagnostic information.

    See Also:

    - diff --git a/doc/enable_error_info.html b/doc/enable_error_info.html index 0f1f937..fe608ed 100644 --- a/doc/enable_error_info.html +++ b/doc/enable_error_info.html @@ -38,7 +38,8 @@ boost

    Nothing.


    See Also:

    -
    Boost Exception
    +

    See Also:

    -
    BOOST_ERROR_INFO
    -
    Boost Exception
    +

    exception::diagnostic_information

    -
    -
    virtual char const * diagnostic_information() const throw();
    -

    Returns:

    -

    A string representation of all data stored in the boost::exception object by the operator<< function. See "Diagnostic Information" for details.

    -

    Throws:

    -

    Nothing.

    -

    Notes:

    -

    See Also:

    -
    BOOST_ERROR_INFO
    -
    Boost Exception
    +
    Boost Exception
    +
    boost/exception/diagnostic_information.hpp
    boost/exception/exception.hpp
    current_exception
    Diagnostic Information
    @@ -81,7 +66,6 @@ boost
    enable_current_exception
    enable_error_info
    error_info
    -
    exception::diagnostic_information
    exception::exception
    exception::~exception
    get_error_info
    diff --git a/doc/exception_diagnostic_information.html b/doc/exception_diagnostic_information.html deleted file mode 100644 index 28a8660..0000000 --- a/doc/exception_diagnostic_information.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - exception::diagnostic_information - - - -
    -
    -
    -
    - -

    Boost Exception

    -
    - - - -

    exception::diagnostic_information

    -
    -
    virtual char const * diagnostic_information() const throw();
    -

    Returns:

    -

    A string representation of all data stored in the boost::exception object by the operator<< function. See "Diagnostic Information" for details.

    -

    Throws:

    -

    Nothing.

    -

    Notes:

    -
    -
    - - - - -
    -
    -
    - - diff --git a/doc/exception_error_info_hpp.html b/doc/exception_error_info_hpp.html index 25dfbcd..842afca 100644 --- a/doc/exception_error_info_hpp.html +++ b/doc/exception_error_info_hpp.html @@ -40,22 +40,12 @@ boost error_info( value_type const & ); }; - typedef error_info<struct tag_throw_function,char const *> throw_function; - typedef error_info<struct tag_throw_file,char const *> throw_file; - typedef error_info<struct tag_throw_line,int> throw_line; - - #define BOOST_ERROR_INFO\ - ::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\ - ::boost::throw_file(__FILE__) <<\ - ::boost::throw_line((int)__LINE__) - template <class E, class Tag, class T> E const & operator<<( E const & x, error_info<Tag,T> const & v ); }

    See Also:

    -
    BOOST_ERROR_INFO
    -
    Boost Exception
    +
    Boost Exception
    boost/exception.hpp
    error_info
    operator<</exception
    diff --git a/doc/exception_exception_hpp.html b/doc/exception_exception_hpp.html index 08b0db0..c146f3d 100644 --- a/doc/exception_exception_hpp.html +++ b/doc/exception_exception_hpp.html @@ -28,10 +28,6 @@ boost class
    exception { - public: - - virtual char const * diagnostic_information() const throw(); - protected: exception(); @@ -39,6 +35,13 @@ boost ~exception(); }; + template <class Tag,class T> + class error_info; + + typedef error_info<struct tag_throw_function,char const *> throw_function; + typedef error_info<struct tag_throw_file,char const *> throw_file; + typedef error_info<struct tag_throw_line,int> throw_line; + template <class T> ---unspecified--- enable_error_info( T const & x ); @@ -47,11 +50,11 @@ boost }

    See Also:

    -
    Boost Exception
    +

    See Also:

    -
    Boost Exception
    +
    BOOST_THROW_EXCEPTION
    +
    Boost Exception
    boost/exception/get_error_info.hpp
    error_info
    exception
    diff --git a/doc/name_idx.html b/doc/name_idx.html index fd995a9..c697a35 100644 --- a/doc/name_idx.html +++ b/doc/name_idx.html @@ -22,7 +22,7 @@

    Index

    B

    -

    BOOST_ERROR_INFO

    +

    BOOST_THROW_EXCEPTION

    Boost Exception

    b

    boost/exception.hpp

    @@ -46,7 +46,6 @@

    enable_error_info

    error_info

    exception

    -

    exception::diagnostic_information

    exception::exception

    exception::~exception

    exception_ptr

    diff --git a/doc/operator_shl_exception.html b/doc/operator_shl_exception.html index f7801a4..307f1ad 100644 --- a/doc/operator_shl_exception.html +++ b/doc/operator_shl_exception.html @@ -38,13 +38,12 @@ boost

    std::bad_alloc, or any exception emitted by the T copy constructor.


    See Also:

    -
    BOOST_ERROR_INFO
    -
    Boost Exception
    +
    Boost Exception
    boost/exception/info.hpp
    Diagnostic Information
    +
    diagnostic_information
    error_info
    exception
    -
    exception::diagnostic_information
    exception::exception
    get_error_info
    Integrating Boost Exception in Existing Exception Class Hierarchies
    diff --git a/doc/source/boost-exception.reno b/doc/source/boost-exception.reno index e33c3a4..3c8bb9b 100644 --- a/doc/source/boost-exception.reno +++ b/doc/source/boost-exception.reno @@ -48,104 +48,6 @@ reno_context - - - - - - 2 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - 3B6841673B8593C38CF26F79F442E6F129D8DCEB7B7059525CC6537D1C8B968A - 2025879831 - 1411 - 3533 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - - <string>exception</string> - - - - - - - - - 1 - 2 - (:include include:) ---- !!!See Also: (:pagelist link="backlink" except_tags="exception,member" mod="w":) - - - - - 0 - - 6 - - reno_context - - - - - - - 2 - 86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB - 941210061 - 8706 - 487 - 0E9DF8366080712A816BE91ABCEF1E2044145B63D75B0B995B537900F378189E - 1069696031 - 255 - 8445 - - - - - - 0 - ../../../../boost/exception_ptr.hpp - 0 - 0 - - - - - <string>rethrow_exception</string> - - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 7 - - reno_context - @@ -185,7 +87,7 @@ 0 - 8 + 6 reno_context @@ -230,6 +132,104 @@ (:include include:) (:auto also:) + + + 0 + + 7 + + reno_context + + + + + + + 2 + E86977BC88F0D950B8FD02FC853FFC0D7230B26376B908037F3F4AF429FD9A4D + 557160971 + 1522 + 433 + 25FBAAA29F300B32DF38832E0A102B8A4FAB726B5FAEE428B00DBD5D58D9BB16 + 3475582031 + 1039 + 477 + + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + + <string>diagnostic_information</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 8 + + reno_context + + + + + + + 2 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 + 323 + 2D32D2DE11DB8BDD6F34C94CC165ABEF4F4CCB2D119354FA05811534E2AF356F + 1002290201 + 1604 + 3720 + + + + + + 0 + ../../../../boost/exception/exception.hpp + 0 + 0 + + + + + <string>exception</string> + + + + + + + + + 1 + 2 + (:include include:) ---- !!!See Also: (:pagelist link="backlink" except_tags="exception,member" mod="w":) + + 0 @@ -238,6 +238,145 @@ reno_context + + + + + + 1 + 17FF6C63843EE64ED66CB038DD95B4C4D6BA1B0FD36B27BEFD84A909161D2853 + 1237535165 + 231 + 1255 + + + + + + 0 + ../../../../boost/throw_exception.hpp + 0 + 0 + + + + + <string>BOOST_THROW_EXCEPTION</string> + + + + + + + + + 1 + 2 + (:include include:) (:pagelist link="backlink":) + + + + + 0 + + 10 + + reno_context + + + + + + + 2 + 86E1196533E771AEFD141DA43FCD980AE3D7689A45EDD54A2DF28B1943E0E7DB + 941210061 + 8706 + 487 + 0E9DF8366080712A816BE91ABCEF1E2044145B63D75B0B995B537900F378189E + 1069696031 + 255 + 8445 + + + + + + 0 + ../../../../boost/exception_ptr.hpp + 0 + 0 + + + + + <string>rethrow_exception</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 11 + + reno_context + + + + + + + 1 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 + 323 + + + + + + 0 + ../../../../boost/exception/exception.hpp + 0 + 0 + + + + + <string>boost/exception/exception.hpp</string> + + + exception_exception_hpp + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 12 + + reno_context + @@ -283,7 +422,7 @@ 0 - 10 + 13 reno_context @@ -328,142 +467,6 @@ (:include include:) (:auto also:) - - - 0 - - 11 - - reno_context - - - - - - - 2 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - B4D37C317A3B45825DDA1A8C8B1CE71CC2E530D15090D05995FCBEC4247F49C4 - 2742768198 - 258 - 6334 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - - <string>enable_error_info</string> - - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 12 - - reno_context - - - - - - - 0 - - - - - - 1 - - - - - <string>transporting of arbitrary data to the catch site</string> - - - tutorial_transporting_data - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 13 - - reno_context - - - - - - - 2 - 5D858F380BC3744F62A182EB6B0F60DB7F0B149CB7B5B36AC1501EBD514EC319 - 3795769778 - 3922 - 518 - 19910616B1E3D5F4A47BEA017E0D9FE2E36B5DE690A8DE40F6B587BE30C9B1F0 - 1412349234 - 754 - 26 - - - - - - 0 - ../../../../boost/exception/info.hpp - 0 - 0 - - - - - <string>error_info</string> - - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - 0 @@ -472,241 +475,6 @@ reno_context - - - - - - 3 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - 3B6841673B8593C38CF26F79F442E6F129D8DCEB7B7059525CC6537D1C8B968A - 2025879831 - 1411 - 3533 - DA154372D8C23BD9EDC30005CA7959CE686D198891097A837D006B5222F04DE9 - 2768248809 - 143 - 60 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - - <string>exception::exception</string> - - - exception_constructors - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 15 - - reno_context - - - - - - - 1 - D9B8E6AA12A4F33953B1A961FA590C5A3840234B6531CA8C04AC985AD5800835 - 2432554768 - 702 - 408 - - - - - - 0 - ../../example/enable_error_info.cpp - 0 - 0 - - - - - <string>integrating boost exception in existing exception class hierarchies</string> - - - tutorial_enable_error_info - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 16 - - reno_context - - - - - - - 1 - F4C951B28F7DE500973AA3DFAA99F2BADA6EDAFA2B406C30BEF3B7FBE6FD57D7 - 2263754923 - 982 - 306 - - - - - - 0 - ../../example/error_info_2.cpp - 0 - 0 - - - - - <string>adding of arbitrary data to active exception objects</string> - - - adding_data_later - - - - - - 0 - - - - - 0 - - 17 - - reno_context - - - - - - - 2 - 8F178D422EC1891AEDF90A4DCA7BCEC96D29D1B0A70726C222513D699679F59D - 3253069900 - 3913 - 525 - BB8AF986C96801345719855FEA083AF5684FBC349F6520E150F19A6370019265 - 3731478139 - 686 - 3221 - - - - - - 0 - ../../../../boost/exception/get_error_info.hpp - 0 - 0 - - - - - <string>get_error_info</string> - - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 18 - - reno_context - - - - - - - 1 - 25DF01CCA9425952104C6606C336BB091879E4A22680790BBB352670DFB0E0CD - 4271502180 - 8870 - 323 - - - - - - 0 - ../../../../boost/exception_ptr.hpp - 0 - 0 - - - - - <string>boost/exception_ptr.hpp</string> - - - exception_cloning_hpp - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - 19 - - reno_context - @@ -752,7 +520,7 @@ 0 - 20 + 15 reno_context @@ -762,28 +530,28 @@ 2 - 5D858F380BC3744F62A182EB6B0F60DB7F0B149CB7B5B36AC1501EBD514EC319 - 3795769778 - 3922 - 518 - D31BCE814DF5B8B718E7EB67A194AD08EF716A26D422E436596ABA1F145007D8 - 4055211476 - 525 - 3391 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 + 323 + B4D37C317A3B45825DDA1A8C8B1CE71CC2E530D15090D05995FCBEC4247F49C4 + 2742768198 + 258 + 6714 0 - ../../../../boost/exception/info.hpp + ../../../../boost/exception/exception.hpp 0 0 - <string>operator<</exception</string> + <string>enable_error_info</string> @@ -801,7 +569,147 @@ 0 - 21 + 16 + + reno_context + + + + + + + 0 + + + + + + 1 + + + + + <string>transporting of arbitrary data to the catch site</string> + + + tutorial_transporting_data + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 17 + + reno_context + + + + + + + 2 + 80895C67727835F0DAB5F5EF65FB2FD9E64008528BD4B800119E88BFB914588F + 2505563498 + 3946 + 518 + 7108B78DA28F7485BBB4D649BEE943AF19A3D63C80DD03F927FDA7A6D8EE2F3B + 3042951402 + 778 + 26 + + + + + + 0 + ../../../../boost/exception/info.hpp + 0 + 0 + + + + + <string>error_info</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 18 + + reno_context + + + + + + + 3 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 + 323 + 2D32D2DE11DB8BDD6F34C94CC165ABEF4F4CCB2D119354FA05811534E2AF356F + 1002290201 + 1604 + 3720 + DA154372D8C23BD9EDC30005CA7959CE686D198891097A837D006B5222F04DE9 + 2768248809 + 143 + 60 + + + + + + 0 + ../../../../boost/exception/exception.hpp + 0 + 0 + + + + + <string>exception::exception</string> + + + exception_constructors + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 19 reno_context @@ -811,27 +719,72 @@ 1 - 187BFD2B78A0DD006717B5B06FFD465E2468F521C32A86FB793F7A68AB5417F3 - 4276724153 - 574 - 382 + D9B8E6AA12A4F33953B1A961FA590C5A3840234B6531CA8C04AC985AD5800835 + 2432554768 + 702 + 408 0 - ../../example/error_info_1.cpp + ../../example/enable_error_info.cpp 0 0 - <string>adding of arbitrary data at the point of the throw</string> + <string>integrating boost exception in existing exception class hierarchies</string> - adding_data_at_throw + tutorial_enable_error_info + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 20 + + reno_context + + + + + + + 1 + F4C951B28F7DE500973AA3DFAA99F2BADA6EDAFA2B406C30BEF3B7FBE6FD57D7 + 2263754923 + 982 + 306 + + + + + + 0 + ../../example/error_info_2.cpp + 0 + 0 + + + + + <string>adding of arbitrary data to active exception objects</string> + + + adding_data_later @@ -840,6 +793,55 @@ 0 + + + 0 + + 21 + + reno_context + + + + + + + 2 + 8F178D422EC1891AEDF90A4DCA7BCEC96D29D1B0A70726C222513D699679F59D + 3253069900 + 3913 + 525 + BB8AF986C96801345719855FEA083AF5684FBC349F6520E150F19A6370019265 + 3731478139 + 686 + 3221 + + + + + + 0 + ../../../../boost/exception/get_error_info.hpp + 0 + 0 + + + + + <string>get_error_info</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + 0 @@ -854,27 +856,27 @@ 1 - CAD6C404CB725D336A44920D2341ECA131149AB02C368B59028F8147F16737BF - 2258638601 - 94 - 227 + 25DF01CCA9425952104C6606C336BB091879E4A22680790BBB352670DFB0E0CD + 4271502180 + 8870 + 323 0 - ../../../../boost/exception/info_tuple.hpp + ../../../../boost/exception_ptr.hpp 0 0 - <string>boost/exception/info_tuple.hpp</string> + <string>boost/exception_ptr.hpp</string> - exception_error_info_group_hpp + exception_cloning_hpp @@ -893,94 +895,6 @@ reno_context - - - - - - 1 - 4ED9709788BBAB4DE7CF336561606B8C0B41F70877A3395F4EE026F4AEB66CC6 - 743998427 - 409 - 307 - - - - - - 0 - ../../example/cloning_1.cpp - 0 - 0 - - - - - <string>using enable_current_exception at the time of the throw</string> - - - using_enable_cloning - - - - - - 0 - - - - - 0 - - 24 - - reno_context - - - - - - - 1 - 17FF6C63843EE64ED66CB038DD95B4C4D6BA1B0FD36B27BEFD84A909161D2853 - 1237535165 - 231 - 1261 - - - - - - 0 - ../../../../boost/throw_exception.hpp - 0 - 0 - - - - - <string>BOOST_THROW_EXCEPTION</string> - - - - - - - - - 1 - 2 - (:include include:) (:pagelist link="backlink":) - - - - - 0 - - 25 - - reno_context - @@ -1022,6 +936,98 @@ (:include include:) (:auto also:) + + + 0 + + 24 + + reno_context + + + + + + + 2 + 80895C67727835F0DAB5F5EF65FB2FD9E64008528BD4B800119E88BFB914588F + 2505563498 + 3946 + 518 + D31BCE814DF5B8B718E7EB67A194AD08EF716A26D422E436596ABA1F145007D8 + 4055211476 + 525 + 3415 + + + + + + 0 + ../../../../boost/exception/info.hpp + 0 + 0 + + + + + <string>operator<</exception</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 25 + + reno_context + + + + + + + 1 + 187BFD2B78A0DD006717B5B06FFD465E2468F521C32A86FB793F7A68AB5417F3 + 4276724153 + 574 + 382 + + + + + + 0 + ../../example/error_info_1.cpp + 0 + 0 + + + + + <string>adding of arbitrary data at the point of the throw</string> + + + adding_data_at_throw + + + + + + 0 + + 0 @@ -1030,6 +1036,94 @@ reno_context + + + + + + 1 + CAD6C404CB725D336A44920D2341ECA131149AB02C368B59028F8147F16737BF + 2258638601 + 94 + 227 + + + + + + 0 + ../../../../boost/exception/info_tuple.hpp + 0 + 0 + + + + + <string>boost/exception/info_tuple.hpp</string> + + + exception_error_info_group_hpp + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 27 + + reno_context + + + + + + + 1 + 4ED9709788BBAB4DE7CF336561606B8C0B41F70877A3395F4EE026F4AEB66CC6 + 743998427 + 409 + 307 + + + + + + 0 + ../../example/cloning_1.cpp + 0 + 0 + + + + + <string>using enable_current_exception at the time of the throw</string> + + + using_enable_cloning + + + + + + 0 + + + + + 0 + + 28 + + reno_context + @@ -1075,7 +1169,52 @@ 0 - 27 + 29 + + reno_context + + + + + + + 1 + 86015F1EAE1BF32CF58BD22D021B7697EAF6A5B07B79CE46116046B74AAE0327 + 2401878021 + 1632 + 323 + + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + + <string>boost/exception/diagnostic_information.hpp</string> + + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + + 0 + + 30 reno_context @@ -1085,14 +1224,14 @@ 2 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 323 DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9 1137981799 192 - 7957 + 8379 @@ -1124,7 +1263,7 @@ 0 - 28 + 31 reno_context @@ -1160,7 +1299,7 @@ 0 - 29 + 32 reno_context @@ -1194,7 +1333,7 @@ 0 - 30 + 33 reno_context @@ -1207,7 +1346,7 @@ 612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A 1770110914 587 - 1572 + 1566 60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D 3929437933 361 @@ -1239,7 +1378,7 @@ 0 - -12 + -16 2 @@ -1248,7 +1387,7 @@ 0 - -15 + -19 2 @@ -1257,7 +1396,7 @@ 0 - -29 + -32 2 @@ -1266,7 +1405,7 @@ 0 - 31 + 34 reno_context @@ -1307,39 +1446,12 @@ 0 - -5 + -8 2 :) ##Transporting of Arbitrary Data to the Catch Site ###(:link 1 - - 0 - - -13 - - - 2 - :) ###(:link - 1 - - 0 - - -20 - - - 2 - :) ###(:link - 1 - - 0 - - -9 - - - 2 - :) ###(:link - 1 0 @@ -1352,7 +1464,34 @@ 0 - -11 + -24 + + + 2 + :) ###(:link + 1 + + 0 + + -12 + + + 2 + :) ###(:link + 1 + + 0 + + -21 + + + 2 + :) ###(:link + 1 + + 0 + + -15 2 @@ -1361,7 +1500,7 @@ 0 - -19 + -14 2 @@ -1370,7 +1509,7 @@ 0 - -27 + -30 2 @@ -1379,7 +1518,7 @@ 0 - -25 + -23 2 @@ -1388,16 +1527,7 @@ 0 - -26 - - - 2 - :) ###(:link - 1 - - 0 - - -6 + -28 2 @@ -1410,48 +1540,12 @@ 2 - :) ##(:link + :) ###(:link 1 0 - 32 - - reno_context - - - - - - - 2 - 214D17B425C1C447F952970DA6B1A778AD45CCA513405EB2DA6EBE87285A852A - 1906283610 - 2414 - 457 - 6B355BB18EB534B5221822257C7A7F834692C7256E5D118F5443C7D905731578 - 1509743294 - 810 - 1598 - - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - - <string>diagnostic_information</string> - - - - - + -13 2 @@ -1460,7 +1554,16 @@ 0 - -30 + -7 + + + 2 + :) ##(:link + 1 + + 0 + + -33 2 @@ -1469,7 +1572,7 @@ 0 - -24 + -9 2 @@ -1478,7 +1581,7 @@ 0 - 33 + 35 reno_context @@ -1519,39 +1622,7 @@ 0 - 34 - - reno_context - - - - - - - 1 - FED4CEA991FBBA8DF26B5652CE68C929C38BEE74DFD6C8E89E2A623BF0A61503 - 1244906377 - 2548 - 323 - - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - - <string>boost/exception/diagnostic_information.hpp</string> - - - - - + -29 2 @@ -1560,7 +1631,7 @@ 0 - -8 + -6 2 @@ -1569,39 +1640,7 @@ 0 - 35 - - reno_context - - - - - - - 1 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - - <string>boost/exception/exception.hpp</string> - - - exception_exception_hpp - - + -11 2 @@ -1620,8 +1659,8 @@ 1 - CE97847149DCCA83D355ABAA887E4AF8E018C37DE97D618A31214E5077847F43 - 3156684943 + 004B7821B451CA1B70A9BE6231A5359BE7A5E991793A4B4DB1DB0008905DF6B6 + 2648584333 4115 323 @@ -1661,9 +1700,9 @@ 1 - 2B301067670FD9E4228CA18983BCC789E87F8C53D1894B4668AD8F676CAD41D8 - 2210144139 - 4117 + B3FB1F53BE0C995FC6388C2C4510AA859AC443E2E68F1F4E31541A8F7510861F + 3274515267 + 4141 323 @@ -1692,7 +1731,7 @@ 0 - -22 + -26 2 @@ -1701,7 +1740,7 @@ 0 - -18 + -22 2 @@ -1720,9 +1759,9 @@ 1 - 063C57ADA280089816203FC3E294E63BC4FCF268AAFF30B4DDFA24178F96F2C5 - 3326118576 - 2088 + 05BBA12328429E0E88C8D44170E103FDF8DCD84E0C9AFB19D0478F9F4606FBE7 + 3486222742 + 2082 91 @@ -1785,7 +1824,7 @@ 0 - -33 + -35 2 @@ -1794,7 +1833,7 @@ 0 - -35 + -11 2 @@ -1809,6 +1848,24 @@ 2 api pre_indent="4":) (:include 1 + + 0 + + -26 + + + 2 + api pre_indent="4":) (:include + 1 + + 0 + + -29 + + + 2 + api pre_indent="4":) (:include + 1 0 @@ -1816,24 +1873,6 @@ 2 - api pre_indent="4":) (:include - 1 - - 0 - - -34 - - - 2 - api pre_indent="4":) (:include - 1 - - 0 - - -18 - - - 2 api pre_indent="4":) }@] `#include <(:link 1 @@ -1857,39 +1896,12 @@ 0 - -5 + -8 2 :) !!Transporting of Arbitrary Data to the Catch Site (:include 1 - - 0 - - -13 - - - 2 - :) (:include - 1 - - 0 - - -20 - - - 2 - :) (:include - 1 - - 0 - - -9 - - - 2 - :) (:include - 1 0 @@ -1902,7 +1914,34 @@ 0 - -11 + -24 + + + 2 + :) (:include + 1 + + 0 + + -12 + + + 2 + :) (:include + 1 + + 0 + + -21 + + + 2 + :) (:include + 1 + + 0 + + -15 2 @@ -1911,7 +1950,7 @@ 0 - -19 + -14 2 @@ -1920,7 +1959,7 @@ 0 - -27 + -30 2 @@ -1929,7 +1968,7 @@ 0 - -25 + -23 2 @@ -1938,16 +1977,7 @@ 0 - -26 - - - 2 - :) (:include - 1 - - 0 - - -6 + -28 2 @@ -1960,12 +1990,21 @@ 2 + :) (:include + 1 + + 0 + + -13 + + + 2 :) !!Printing Diagnostic Information (:include 1 0 - -32 + -7 2 @@ -1974,7 +2013,7 @@ 0 - -30 + -33 2 @@ -1985,20 +2024,7 @@ 0 - -29 - - - - 1 - 2 - (:include include:) (:auto also:) - - - - - 0 - - -30 + -32 @@ -2020,19 +2046,6 @@ (:include include:) (:auto also:) - - - 0 - - -31 - - - - 1 - 2 - (:include include:) (:auto also:) - - 0 @@ -2046,19 +2059,6 @@ (:include include:) (:auto also:) - - - 0 - - -32 - - - - 1 - 2 - (:include include:) (:auto also:) - - 0 @@ -2138,14 +2138,14 @@ 2 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 323 17E691632123EB67BA67D590B49EB8094F462F5A10A66A1C5438E1867EF1478E 765399792 77 - 4946 + 5326 @@ -2238,36 +2238,7 @@ - 7 - 2 - [@class (:link - 1 - - 0 - - -5 - - - 2 - :) { protected: (:include - 1 - - 0 - - -14 - - - 2 - decl pre_indent="4":) (:include - 1 - - 0 - - -40 - - - 2 - decl pre_indent="4":) };@] + 0 @@ -2300,7 +2271,36 @@ - 0 + 7 + 2 + [@class (:link + 1 + + 0 + + -8 + + + 2 + :) { protected: (:include + 1 + + 0 + + -18 + + + 2 + decl pre_indent="4":) (:include + 1 + + 0 + + -40 + + + 2 + decl pre_indent="4":) };@] @@ -2355,18 +2355,7 @@ - 3 - 2 - [@template <class Tag,class T> class (:link - 1 - - 0 - - -13 - - - 2 - :) { public: typedef T value_type; error_info( value_type const & ); };@] + 0 @@ -2410,7 +2399,18 @@ - 0 + 3 + 2 + [@template <class Tag,class T> class (:link + 1 + + 0 + + -17 + + + 2 + :) { public: typedef T value_type; error_info( value_type const & ); };@] @@ -2556,17 +2556,6 @@ 0 - - - 0 - - -33 - - - - 0 - - 0 @@ -2582,7 +2571,7 @@ 0 - -34 + -32 @@ -2593,7 +2582,18 @@ 0 - -32 + -33 + + + + 0 + + + + + 0 + + -34 @@ -2710,7 +2710,18 @@ - 0 + 3 + 2 + [@(:include + 1 + + 0 + + -17 + + + 2 + decl:)@] @@ -2732,18 +2743,7 @@ - 3 - 2 - [@(:include - 1 - - 0 - - -13 - - - 2 - decl:)@] + 0 @@ -2776,7 +2776,72 @@ - 0 + 15 + 2 + [@(:include + 1 + + 0 + + -8 + + + 2 + def:) (:include + 1 + + 0 + + -17 + + + 2 + decl:) typedef (:link + 1 + + 0 + + -17 + + + 2 + :)<struct tag_throw_function,char const *> throw_function; typedef (:link + 1 + + 0 + + -17 + + + 2 + :)<struct tag_throw_file,char const *> throw_file; typedef (:link + 1 + + 0 + + -17 + + + 2 + :)<struct tag_throw_line,int> throw_line; (:include + 1 + + 0 + + -15 + + + 2 + decl:) (:include + 1 + + 0 + + -30 + + + 2 + decl:)@] @@ -2853,54 +2918,7 @@ - 11 - 2 - [@(:include - 1 - - 0 - - -10 - - - 2 - decl:) (:include - 1 - - 0 - - -19 - - - 2 - decl:) (:include - 1 - - 0 - - -26 - - - 2 - decl:) (:include - 1 - - 0 - - -25 - - - 2 - decl:) (:include - 1 - - 0 - - -6 - - - 2 - decl:)@] + 0 @@ -2944,14 +2962,50 @@ - 3 + 11 2 [@(:include 1 0 - -9 + -13 + + + 2 + decl:) (:include + 1 + + 0 + + -14 + + + 2 + decl:) (:include + 1 + + 0 + + -28 + + + 2 + decl:) (:include + 1 + + 0 + + -23 + + + 2 + decl:) (:include + 1 + + 0 + + -10 2 @@ -2999,7 +3053,18 @@ - 0 + 3 + 2 + [@(:include + 1 + + 0 + + -12 + + + 2 + decl:)@] @@ -3032,7 +3097,27 @@ - 0 + 5 + 2 + [@(:include + 1 + + 0 + + -8 + + + 2 + decl:) (:include + 1 + + 0 + + -7 + + + 2 + decl:)@] @@ -3046,6 +3131,28 @@ 0 + + + 0 + + -31 + + + + 0 + + + + + 0 + + -32 + + + + 0 + + 0 @@ -3053,6 +3160,28 @@ -33 + + 0 + + + + + 0 + + -34 + + + + 0 + + + + + 0 + + -35 + + 17 2 @@ -3061,7 +3190,7 @@ 0 - -34 + -29 2 @@ -3070,7 +3199,7 @@ 0 - -8 + -6 2 @@ -3079,7 +3208,7 @@ 0 - -35 + -11 2 @@ -3106,7 +3235,7 @@ 0 - -22 + -26 2 @@ -3115,7 +3244,7 @@ 0 - -18 + -22 2 @@ -3131,126 +3260,6 @@ :)>@] - - - 0 - - -31 - - - - 0 - - - - - 0 - - -34 - - - - 3 - 2 - [@(:include - 1 - - 0 - - -32 - - - 2 - decl:)@] - - - - - 0 - - -32 - - - - 0 - - - - - 0 - - -35 - - - - 15 - 2 - [@(:include - 1 - - 0 - - -5 - - - 2 - def:) (:include - 1 - - 0 - - -13 - - - 2 - decl:) typedef (:link - 1 - - 0 - - -13 - - - 2 - :)<struct tag_throw_function,char const *> throw_function; typedef (:link - 1 - - 0 - - -13 - - - 2 - :)<struct tag_throw_file,char const *> throw_file; typedef (:link - 1 - - 0 - - -13 - - - 2 - :)<struct tag_throw_line,int> throw_line; (:include - 1 - - 0 - - -11 - - - 2 - decl:) (:include - 1 - - 0 - - -27 - - - 2 - decl:)@] - - 0 @@ -3266,7 +3275,7 @@ 0 - -17 + -21 2 @@ -3288,7 +3297,7 @@ 0 - -13 + -17 2 @@ -3297,7 +3306,7 @@ 0 - -20 + -24 2 @@ -3319,7 +3328,7 @@ 0 - -24 + -9 2 @@ -3328,7 +3337,7 @@ 0 - -30 + -33 2 @@ -3390,18 +3399,7 @@ - 3 - 2 - [@class (:link - 1 - - 0 - - -5 - - - 2 - :);@] + 0 @@ -3412,27 +3410,7 @@ - 5 - 2 - [@void (:link - 1 - - 0 - - -6 - - - 2 - :)( (:link - 1 - - 0 - - -19 - - - 2 - :) const & ep ); + 0 @@ -3443,7 +3421,27 @@ - 0 + 5 + 2 + [@std::string (:link + 1 + + 0 + + -7 + + + 2 + :)( boost:: + 1 + + 0 + + -8 + + + 2 + const & x );@] @@ -3454,7 +3452,18 @@ - 0 + 3 + 2 + [@class (:link + 1 + + 0 + + -8 + + + 2 + :);@] @@ -3465,9 +3474,18 @@ - 7 + 19 2 - [@template <class E, class Tag1, class T1, ..., class TagN, class TN> E const & (:link + [@#if !defined( BOOST_NO_EXCEPTIONS ) && !defined( BOOST_EXCEPTION_DISABLE ) #include < + 1 + + 0 + + -11 + + + 2 + > #include <boost/current_function.hpp> #define 1 0 @@ -3476,25 +3494,70 @@ 2 - |operator<<:)( E const & x, (:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)< (:link + (x)\ ::boost:: 1 0 - -13 + -33 2 - :)<Tag1,T1>, ..., (:link + ( ::boost:: 1 0 - -13 + -15 2 - :)<TagN,TN> > const & v );@] + (x) <<\ ::boost::(:link + 1 + + 0 + + -11 + + + 2 + |throw_function:)(BOOST_CURRENT_FUNCTION) <<\ ::boost::(:link + 1 + + 0 + + -11 + + + 2 + |throw_file:)(__FILE__) <<\ ::boost::(:link + 1 + + 0 + + -11 + + + 2 + |throw_line:)((int)__LINE__) ) #else #define + 1 + + 0 + + -9 + + + 2 + (x) ::boost:: + 1 + + 0 + + -33 + + + 2 + (x) #endif@] @@ -3507,7 +3570,7 @@ 5 2 - [@class (:link + [@void (:link 1 0 @@ -3516,16 +3579,16 @@ 2 - :): public std::exception public boost:: + :)( (:link 1 0 - -5 + -14 2 - { ---unspecified--- };@] + :) const & ep ); @@ -3536,18 +3599,7 @@ - 3 - 2 - [@template <class T> ---unspecified--- (:link - 1 - - 0 - - -11 - - - 2 - :)( T const & x );@] + 0 @@ -3558,7 +3610,36 @@ - 0 + 7 + 2 + [@template <class E, class Tag1, class T1, ..., class TagN, class TN> E const & (:link + 1 + + 0 + + -12 + + + 2 + |operator<<:)( E const & x, (:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)< (:link + 1 + + 0 + + -17 + + + 2 + :)<Tag1,T1>, ..., (:link + 1 + + 0 + + -17 + + + 2 + :)<TagN,TN> > const & v );@] @@ -3569,9 +3650,9 @@ - 3 + 5 2 - [@template <class Tag,class T> class (:link + [@class (:link 1 0 @@ -3580,7 +3661,16 @@ 2 - :);@] + :): public std::exception public boost:: + 1 + + 0 + + -8 + + + 2 + { ---unspecified--- };@] @@ -3591,9 +3681,9 @@ - 7 + 3 2 - [@(:link + [@typedef ---unspecified--- (:link 1 0 @@ -3602,25 +3692,7 @@ 2 - mod="m":)(); (:link - 1 - - 0 - - -14 - - - 2 - mod="m":)( (:link - 1 - - 0 - - -5 - - - 2 - :) const & x );@] + :);@] @@ -3631,7 +3703,18 @@ - 0 + 3 + 2 + [@template <class T> ---unspecified--- (:link + 1 + + 0 + + -15 + + + 2 + :)( T const & x );@] @@ -3655,7 +3738,7 @@ 3 2 - [@template <class ErrorInfo,class E> (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)<typename ErrorInfo::value_type const> (:link + [@template <class Tag,class T> class (:link 1 0 @@ -3664,42 +3747,60 @@ 2 - :)( E const & x );@] - - - - - 0 - - -18 - - - - 0 - - - - - 0 - - -19 - - - - 3 - 2 - [@typedef ---unspecified--- (:link - 1 - - 0 - - -19 - - - 2 :);@] + + + 0 + + -18 + + + + 7 + 2 + [@(:link + 1 + + 0 + + -18 + + + 2 + mod="m":)(); (:link + 1 + + 0 + + -18 + + + 2 + mod="m":)( (:link + 1 + + 0 + + -8 + + + 2 + :) const & x );@] + + + + + 0 + + -19 + + + + 0 + + 0 @@ -3708,27 +3809,7 @@ - 5 - 2 - [@template <class E, class Tag, class T> E const & (:link - 1 - - 0 - - -20 - - - 2 - |operator<<:)( E const & x, (:link - 1 - - 0 - - -13 - - - 2 - :)<Tag,T> const & v );@] + 0 @@ -3739,7 +3820,18 @@ - 0 + 3 + 2 + [@template <class ErrorInfo,class E> (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)<typename ErrorInfo::value_type const> (:link + 1 + + 0 + + -21 + + + 2 + :)( E const & x );@] @@ -3760,111 +3852,6 @@ -23 - - 0 - - - - - 0 - - -24 - - - - 19 - 2 - [@#if !defined( BOOST_NO_EXCEPTIONS ) && !defined( BOOST_EXCEPTION_DISABLE ) #include < - 1 - - 0 - - -35 - - - 2 - > #include <boost/current_function.hpp> #define - 1 - - 0 - - -24 - - - 2 - (x)\ ::boost:: - 1 - - 0 - - -30 - - - 2 - ( ::boost:: - 1 - - 0 - - -11 - - - 2 - (x) <<\ ::boost::(:link - 1 - - 0 - - -35 - - - 2 - |throw_function:)(BOOST_CURRENT_FUNCTION) <<\ ::boost::(:link - 1 - - 0 - - -35 - - - 2 - |throw_file:)(__FILE__) <<\ ::boost::(:link - 1 - - 0 - - -35 - - - 2 - |throw_line:)((int)__LINE__) ) #else #define - 1 - - 0 - - -24 - - - 2 - (x) ::boost:: - 1 - - 0 - - -30 - - - 2 - (x) #endif@] - - - - - 0 - - -25 - - 5 2 @@ -3873,7 +3860,7 @@ 0 - -19 + -14 2 @@ -3882,7 +3869,7 @@ 0 - -25 + -23 2 @@ -3893,31 +3880,53 @@ 0 - -26 + -24 5 2 - [@template <class T> (:link + [@template <class E, class Tag, class T> E const & (:link 1 0 - -19 + -24 2 - :) (:link + |operator<<:)( E const & x, (:link 1 0 - -26 + -17 2 - :)( T const & e );@] + :)<Tag,T> const & v );@] + + + + + 0 + + -25 + + + + 0 + + + + + 0 + + -26 + + + + 0 @@ -3928,18 +3937,7 @@ - 3 - 2 - [@template <class T> ---unspecified--- (:link - 1 - - 0 - - -27 - - - 2 - :)( T const & e );@] + 0 @@ -3950,7 +3948,27 @@ - 0 + 5 + 2 + [@template <class T> (:link + 1 + + 0 + + -14 + + + 2 + :) (:link + 1 + + 0 + + -28 + + + 2 + :)( T const & e );@] @@ -3972,9 +3990,9 @@ - 5 + 3 2 - [@#ifdef BOOST_NO_EXCEPTIONS void (:link + [@template <class T> ---unspecified--- (:link 1 0 @@ -3983,27 +4001,7 @@ 2 - :)( std::exception const & e ); // user defined #else template <class E> void (:link - 1 - - 0 - - -30 - - - 2 - :)( E const & e ); #endif@] - - - - - 0 - - -33 - - - - 0 + :)( T const & e );@] @@ -4021,7 +4019,7 @@ 0 - -34 + -32 @@ -4032,31 +4030,42 @@ 0 - -32 + -33 5 2 - [@std::string (:link + [@#ifdef BOOST_NO_EXCEPTIONS void (:link 1 0 - -32 + -33 2 - :)( boost:: + :)( std::exception const & e ); // user defined #else template <class E> void (:link 1 0 - -5 + -33 2 - const & x );@] + :)( E const & e ); #endif@] + + + + + 0 + + -34 + + + + 0 @@ -4169,27 +4178,144 @@ - 17 + 37 2 - (:auto !!!:) (:include synopsis:) Class boost::(:link + (:auto !!!:) When you catch an exception, you can call (:link 1 0 - -5 + -23 2 - :) is designed to be used as a universal base for user-defined exception types. An object of any type deriving from boost::(:link + :) to get an (:link 1 0 - -5 + -14 2 - :) can store data of arbitrary types, using the (:link + :) object: [@#include <(:link + 1 + + 0 + + -22 + + + 2 + :)> #include <boost/thread.hpp> #include <boost/bind.hpp> void do_work(); //throws cloning-enabled boost::(:link + 1 + + 0 + + -8 + + + 2 + :)s void worker_thread( boost::(:link + 1 + + 0 + + -14 + + + 2 + :) & error ) { try { do_work(); error = boost::(:link + 1 + + 0 + + -14 + + + 2 + :)(); } catch( ... ) { error = boost::(:link + 1 + + 0 + + -23 + + + 2 + :)(); } }@] In the above example, note that (:link + 1 + + 0 + + -23 + + + 2 + :) captures the original type of the exception object. The exception can be thrown again using the (:link + 1 + + 0 + + -10 + + + 2 + :) function: [@// ...continued void work() { boost::(:link + 1 + + 0 + + -14 + + + 2 + :) error; boost::(:link http://www.boost.org/doc/html/boost/thread.html|thread:) t( boost::(:link http://www.boost.org/libs/bind/bind.html|bind:)(worker_thread,boost::(:link http://www.boost.org/doc/html/ref.html|ref:)(error)) ); t.(:link http://www.boost.org/doc/html/boost/thread.html|join:)(); if( error ) boost::(:link + 1 + + 0 + + -10 + + + 2 + :)(error); }@] Note that (:link + 1 + + 0 + + -23 + + + 2 + :) could fail to copy the original exception object in the following cases: * if there is not enough memory, in which case the returned (:link + 1 + + 0 + + -14 + + + 2 + :) points to an instance of std::bad_alloc, or * if (:link + 1 + + 0 + + -30 + + + 2 + :) was not used in the throw-expression passed to the original throw statement and the current implementation does not have the necessary compiler-specific support to copy the exception automatically, in which case the returned (:link + 1 + + 0 + + -14 + + + 2 + :) points to an instance of (:link 1 0 @@ -4198,25 +4324,69 @@ 2 - :) wrapper and (:link + :). Regardless, the use of (:link 1 0 - -20 + -23 2 - |operator<<:). To retrieve data from a boost::(:link + :) and (:link 1 0 - -5 + -10 2 - :) object, use the (:link + :) in the above examples is well-formed. + + + + + 0 + + -6 + + + + 1 + 2 + (:auto !!:) !!!Synopsis (:include synopsis:) + + + + + 0 + + -7 + + + + 7 + 2 + (:auto !!!:) (:include synopsis:) !!!!Returns: This function iterates over all data objects stored in the boost::(:link + 1 + + 0 + + -8 + + + 2 + :) through (:link + 1 + + 0 + + -24 + + + 2 + |operator<<:). The returned string is constructed by converting each data object to string and then concatenating these strings together. When the (:link 1 0 @@ -4225,12 +4395,79 @@ 2 + :)<Tag,T> template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string. Otherwise, the system attempts overload resolution for s << x, where s is a std::ostringstream and x is of type T. If this is successful, the operator<< overload is used to convert objects of type T to string. Otherwise the system is unable to convert objects of type T to string, and an unspecified stub string value is used without issuing a compile error. !!!!Notes: *The format of the returned string is unspecified. *The returned string is ''not'' user-friendly. *If dynamic_cast<std::exception const *>(&x) is not null, the returned string includes the output from std::exception::what. *The returned string may include additional platform-specific diagnostic information. + + + + + 0 + + -8 + + + + 17 + 2 + (:auto !!!:) (:include synopsis:) Class boost::(:link + 1 + + 0 + + -8 + + + 2 + :) is designed to be used as a universal base for user-defined exception types. An object of any type deriving from boost::(:link + 1 + + 0 + + -8 + + + 2 + :) can store data of arbitrary types, using the (:link + 1 + + 0 + + -17 + + + 2 + :) wrapper and (:link + 1 + + 0 + + -24 + + + 2 + |operator<<:). To retrieve data from a boost::(:link + 1 + + 0 + + -8 + + + 2 + :) object, use the (:link + 1 + + 0 + + -21 + + + 2 :) function template. (:include 1 0 - -14 + -18 2 @@ -4250,7 +4487,47 @@ 0 - -6 + -9 + + + + 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 + + -33 + + + 2 + . To recover this information at the catch site, use + 1 + + 0 + + -21 + + + 2 + ; the information is also included in the message returned by + 1 + + 0 + + -7 + + + 2 + . + + + + + 0 + + -10 @@ -4263,182 +4540,7 @@ 0 - -7 - - - - 37 - 2 - (:auto !!!:) When you catch an exception, you can call (:link - 1 - - 0 - - -25 - - - 2 - :) to get an (:link - 1 - - 0 - - -19 - - - 2 - :) object: [@#include <(:link - 1 - - 0 - - -18 - - - 2 - :)> #include <boost/thread.hpp> #include <boost/bind.hpp> void do_work(); //throws cloning-enabled boost::(:link - 1 - - 0 - - -5 - - - 2 - :)s void worker_thread( boost::(:link - 1 - - 0 - - -19 - - - 2 - :) & error ) { try { do_work(); error = boost::(:link - 1 - - 0 - - -19 - - - 2 - :)(); } catch( ... ) { error = boost::(:link - 1 - - 0 - - -25 - - - 2 - :)(); } }@] In the above example, note that (:link - 1 - - 0 - - -25 - - - 2 - :) captures the original type of the exception object. The exception can be thrown again using the (:link - 1 - - 0 - - -6 - - - 2 - :) function: [@// ...continued void work() { boost::(:link - 1 - - 0 - - -19 - - - 2 - :) error; boost::(:link http://www.boost.org/doc/html/boost/thread.html|thread:) t( boost::(:link http://www.boost.org/libs/bind/bind.html|bind:)(worker_thread,boost::(:link http://www.boost.org/doc/html/ref.html|ref:)(error)) ); t.(:link http://www.boost.org/doc/html/boost/thread.html|join:)(); if( error ) boost::(:link - 1 - - 0 - - -6 - - - 2 - :)(error); }@] Note that (:link - 1 - - 0 - - -25 - - - 2 - :) could fail to copy the original exception object in the following cases: * if there is not enough memory, in which case the returned (:link - 1 - - 0 - - -19 - - - 2 - :) points to an instance of std::bad_alloc, or * if (:link - 1 - - 0 - - -27 - - - 2 - :) was not used in the throw-expression passed to the original throw statement and the current implementation does not have the necessary compiler-specific support to copy the exception automatically, in which case the returned (:link - 1 - - 0 - - -19 - - - 2 - :) points to an instance of (:link - 1 - - 0 - - -10 - - - 2 - :). Regardless, the use of (:link - 1 - - 0 - - -25 - - - 2 - :) and (:link - 1 - - 0 - - -6 - - - 2 - :) in the above examples is well-formed. - - - - - 0 - - -8 + -11 @@ -4451,7 +4553,7 @@ 0 - -9 + -12 @@ -4462,7 +4564,7 @@ 0 - -5 + -8 2 @@ -4471,7 +4573,7 @@ 0 - -5 + -8 2 @@ -4482,7 +4584,7 @@ 0 - -10 + -13 @@ -4493,7 +4595,7 @@ 0 - -19 + -14 2 @@ -4502,7 +4604,7 @@ 0 - -25 + -23 2 @@ -4513,7 +4615,92 @@ 0 - -11 + -14 + + + + 17 + 2 + (:auto !!!:) (:include synopsis:) The (:link + 1 + + 0 + + -14 + + + 2 + :) type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; (:link + 1 + + 0 + + -14 + + + 2 + :)'s operations do not throw. Two instances of (:link + 1 + + 0 + + -14 + + + 2 + :) are equivalent and compare equal if and only if they refer to the same exception. The default constructor of (:link + 1 + + 0 + + -14 + + + 2 + :) produces the null value of the type. The null value is equivalent only to itself. !!!!Thread safety * It is legal for multiple threads to hold (:link + 1 + + 0 + + -14 + + + 2 + :) references to the same exception object. * It is illegal for multiple threads to modify the same (:link + 1 + + 0 + + -14 + + + 2 + :) object concurrently. * While calling + 1 + + 0 + + -23 + + + 2 + makes a copy of the current exception object, it is still possible for the two copies to share internal state. Therefore, in general it is not safe to call + 1 + + 0 + + -10 + + + 2 + to throw the same exception object concurrently into multiple threads. + + + + + 0 + + -15 @@ -4524,7 +4711,7 @@ 0 - -5 + -8 2 @@ -4533,7 +4720,7 @@ 0 - -5 + -8 2 @@ -4544,7 +4731,7 @@ 0 - -12 + -16 @@ -4555,7 +4742,7 @@ 0 - -5 + -8 2 @@ -4564,7 +4751,7 @@ 0 - -5 + -8 2 @@ -4573,7 +4760,7 @@ 0 - -21 + -25 2 @@ -4582,7 +4769,7 @@ 0 - -16 + -20 2 @@ -4602,7 +4789,7 @@ 0 - -13 + -17 @@ -4613,7 +4800,7 @@ 0 - -13 + -17 2 @@ -4622,7 +4809,7 @@ 0 - -20 + -24 2 @@ -4631,7 +4818,7 @@ 0 - -5 + -8 2 @@ -4640,7 +4827,7 @@ 0 - -8 + -6 2 @@ -4649,7 +4836,7 @@ 0 - -13 + -17 2 @@ -4658,7 +4845,7 @@ 0 - -8 + -6 2 @@ -4667,7 +4854,7 @@ 0 - -13 + -17 2 @@ -4676,7 +4863,7 @@ 0 - -13 + -17 2 @@ -4685,7 +4872,7 @@ 0 - -5 + -8 2 @@ -4694,7 +4881,7 @@ 0 - -20 + -24 2 @@ -4703,7 +4890,7 @@ 0 - -17 + -21 2 @@ -4723,7 +4910,7 @@ 0 - -14 + -18 @@ -4734,7 +4921,7 @@ 0 - -5 + -8 2 @@ -4743,7 +4930,7 @@ 0 - -5 + -8 2 @@ -4752,7 +4939,7 @@ 0 - -20 + -24 2 @@ -4763,7 +4950,7 @@ 0 - -15 + -19 @@ -4774,7 +4961,7 @@ 0 - -5 + -8 2 @@ -4783,7 +4970,7 @@ 0 - -11 + -15 2 @@ -4792,7 +4979,7 @@ 0 - -5 + -8 2 @@ -4801,7 +4988,7 @@ 0 - -33 + -35 2 @@ -4810,7 +4997,7 @@ 0 - -13 + -17 2 @@ -4819,7 +5006,7 @@ 0 - -13 + -17 2 @@ -4828,7 +5015,7 @@ 0 - -13 + -17 2 @@ -4837,7 +5024,7 @@ 0 - -11 + -15 2 @@ -4846,7 +5033,7 @@ 0 - -11 + -15 2 @@ -4855,7 +5042,7 @@ 0 - -5 + -8 2 @@ -4864,7 +5051,7 @@ 0 - -20 + -24 2 @@ -4873,7 +5060,7 @@ 0 - -5 + -8 2 @@ -4882,7 +5069,7 @@ 0 - -12 + -16 2 @@ -4893,7 +5080,7 @@ 0 - -16 + -20 @@ -4904,7 +5091,7 @@ 0 - -5 + -8 2 @@ -4913,7 +5100,7 @@ 0 - -33 + -35 2 @@ -4922,7 +5109,7 @@ 0 - -13 + -17 2 @@ -4931,7 +5118,7 @@ 0 - -5 + -8 2 @@ -4940,7 +5127,7 @@ 0 - -33 + -35 2 @@ -4949,7 +5136,7 @@ 0 - -13 + -17 2 @@ -4958,7 +5145,7 @@ 0 - -5 + -8 2 @@ -4967,7 +5154,7 @@ 0 - -5 + -8 2 @@ -4976,7 +5163,7 @@ 0 - -5 + -8 2 @@ -4985,7 +5172,7 @@ 0 - -17 + -21 2 @@ -4996,7 +5183,7 @@ 0 - -17 + -21 @@ -5007,7 +5194,7 @@ 0 - -13 + -17 2 @@ -5016,7 +5203,7 @@ 0 - -17 + -21 2 @@ -5025,7 +5212,7 @@ 0 - -5 + -8 2 @@ -5034,236 +5221,13 @@ 0 - -20 + -24 2 |operator<<:) to store values in exception objects.) The shared_ptr is valid even after x has been destroyed. !!!!Throws: Nothing. - - - 0 - - -18 - - - - 1 - 2 - (:auto !!:) !!!Synopsis (:include synopsis:) - - - - - 0 - - -19 - - - - 17 - 2 - (:auto !!!:) (:include synopsis:) The (:link - 1 - - 0 - - -19 - - - 2 - :) type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; (:link - 1 - - 0 - - -19 - - - 2 - :)'s operations do not throw. Two instances of (:link - 1 - - 0 - - -19 - - - 2 - :) are equivalent and compare equal if and only if they refer to the same exception. The default constructor of (:link - 1 - - 0 - - -19 - - - 2 - :) produces the null value of the type. The null value is equivalent only to itself. !!!!Thread safety * It is legal for multiple threads to hold (:link - 1 - - 0 - - -19 - - - 2 - :) references to the same exception object. * It is illegal for multiple threads to modify the same (:link - 1 - - 0 - - -19 - - - 2 - :) object concurrently. * While calling - 1 - - 0 - - -25 - - - 2 - makes a copy of the current exception object, it is still possible for the two copies to share internal state. Therefore, in general it is not safe to call - 1 - - 0 - - -6 - - - 2 - to throw the same exception object concurrently into multiple threads. - - - - - 0 - - -20 - - - - 7 - 2 - (:auto !!!:) (:include synopsis:) !!!!Requirements: E must be boost::(:link - 1 - - 0 - - -5 - - - 2 - :), or a type that derives (indirectly) from boost::(:link - 1 - - 0 - - -5 - - - 2 - :). !!!!Effects: Stores a copy of v into x. If x already contains data of type (:link - 1 - - 0 - - -13 - - - 2 - :)<Tag,T>, that data is overwritten. !!!!Returns: x. (:include throws:) - - - - - 0 - - -21 - - - - 17 - 2 - (:auto !!!:) The following example demonstrates how errno can be stored in exception objects using Boost Exception: [@#include <(:link - 1 - - 0 - - -33 - - - 2 - :)> #include <errno.h> #include <iostream> typedef boost::(:link - 1 - - 0 - - -13 - - - 2 - :)<struct tag_errno,int> errno_info; //(1) class my_error: public boost::(:link - 1 - - 0 - - -5 - - - 2 - :), public std::exception { }; //(2) void f() { throw my_error() << errno_info(errno); //(3) } @] First, we instantiate the (:link - 1 - - 0 - - -13 - - - 2 - :) template using a unique identifier -- tag_errno, and the type of the info it identifies -- int. This provides compile-time type safety for the various values stored in exception objects. Second, we define class my_error, which derives from boost::(:link - 1 - - 0 - - -5 - - - 2 - :). Finally, (3) illustrates how the typedef from (1) can be used with (:link - 1 - - 0 - - -20 - - - 2 - |operator<<:) to store values in exception objects at the point of the throw. The stored errno value can be recovered at a later time like this: [@// ...continued void g() { try { f(); } catch( my_error & x ) { if( boost::shared_ptr<int const> err=boost::(:link - 1 - - 0 - - -17 - - - 2 - :)<errno_info>(x) ) std::cerr << "Error code: " << *err; } }@] The (:link - 1 - - 0 - - -17 - - - 2 - :) function template is instantiated with the typedef from (1), and is passed an exception object of a polymorphic type. If the exception object contains the requested value, the returned (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:) will point to it; otherwise an empty (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:) is returned. - - 0 @@ -5284,6 +5248,283 @@ -23 + + 29 + 2 + (:auto !!!:) (:include synopsis:) !!!!Requirements: The (:link + 1 + + 0 + + -23 + + + 2 + :) function must not be called outside of a catch block. !!!!Returns: * An (:link + 1 + + 0 + + -14 + + + 2 + :) that refers to the currently handled exception or a copy of the currently handled exception. * If the function needs to allocate memory and the attempt fails, it returns an (:link + 1 + + 0 + + -14 + + + 2 + :) that refers to an instance of std::bad_alloc. !!!!Throws: Nothing. !!!!Notes: * It is unspecified whether the return values of two successive calls to (:link + 1 + + 0 + + -23 + + + 2 + :) refer to the same exception object. * Correct implementation of (:link + 1 + + 0 + + -23 + + + 2 + :) may require compiler support, unless (:link + 1 + + 0 + + -30 + + + 2 + :) was used at the time the currently handled exception object was passed to throw. If (:link + 1 + + 0 + + -30 + + + 2 + :) was not used, and if the compiler does not provide the necessary support, then (:link + 1 + + 0 + + -23 + + + 2 + :) may return an (:link + 1 + + 0 + + -14 + + + 2 + :) that refers to an instance of (:link + 1 + + 0 + + -13 + + + 2 + :). In this case, if the original exception object derives from boost::(:link + 1 + + 0 + + -8 + + + 2 + :), then the boost::(:link + 1 + + 0 + + -8 + + + 2 + :) sub-object of the (:link + 1 + + 0 + + -13 + + + 2 + :) object is initialized by the boost::(:link + 1 + + 0 + + -8 + + + 2 + :) copy constructor. + + + + + 0 + + -24 + + + + 7 + 2 + (:auto !!!:) (:include synopsis:) !!!!Requirements: E must be boost::(:link + 1 + + 0 + + -8 + + + 2 + :), or a type that derives (indirectly) from boost::(:link + 1 + + 0 + + -8 + + + 2 + :). !!!!Effects: Stores a copy of v into x. If x already contains data of type (:link + 1 + + 0 + + -17 + + + 2 + :)<Tag,T>, that data is overwritten. !!!!Returns: x. (:include throws:) + + + + + 0 + + -25 + + + + 17 + 2 + (:auto !!!:) The following example demonstrates how errno can be stored in exception objects using Boost Exception: [@#include <(:link + 1 + + 0 + + -35 + + + 2 + :)> #include <errno.h> #include <iostream> typedef boost::(:link + 1 + + 0 + + -17 + + + 2 + :)<struct tag_errno,int> errno_info; //(1) class my_error: public boost::(:link + 1 + + 0 + + -8 + + + 2 + :), public std::exception { }; //(2) void f() { throw my_error() << errno_info(errno); //(3) } @] First, we instantiate the (:link + 1 + + 0 + + -17 + + + 2 + :) template using a unique identifier -- tag_errno, and the type of the info it identifies -- int. This provides compile-time type safety for the various values stored in exception objects. Second, we define class my_error, which derives from boost::(:link + 1 + + 0 + + -8 + + + 2 + :). Finally, (3) illustrates how the typedef from (1) can be used with (:link + 1 + + 0 + + -24 + + + 2 + |operator<<:) to store values in exception objects at the point of the throw. The stored errno value can be recovered at a later time like this: [@// ...continued void g() { try { f(); } catch( my_error & x ) { if( boost::shared_ptr<int const> err=boost::(:link + 1 + + 0 + + -21 + + + 2 + :)<errno_info>(x) ) std::cerr << "Error code: " << *err; } }@] The (:link + 1 + + 0 + + -21 + + + 2 + :) function template is instantiated with the typedef from (1), and is passed an exception object of a polymorphic type. If the exception object contains the requested value, the returned (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:) will point to it; otherwise an empty (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:) is returned. + + + + + 0 + + -26 + + + + 1 + 2 + (:auto !!:) !!!Synopsis (:include synopsis:) + + + + + 0 + + -27 + + 11 2 @@ -5301,7 +5542,7 @@ 0 - -5 + -8 2 @@ -5310,7 +5551,7 @@ 0 - -27 + -30 2 @@ -5319,7 +5560,7 @@ 0 - -27 + -30 2 @@ -5328,7 +5569,7 @@ 0 - -5 + -8 2 @@ -5339,186 +5580,7 @@ 0 - -24 - - - - 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 - - -30 - - - 2 - . To recover this information at the catch site, use - 1 - - 0 - - -17 - - - 2 - ; the information is also included in the message returned by - 1 - - 0 - - -32 - - - 2 - . - - - - - 0 - - -25 - - - - 29 - 2 - (:auto !!!:) (:include synopsis:) !!!!Requirements: The (:link - 1 - - 0 - - -25 - - - 2 - :) function must not be called outside of a catch block. !!!!Returns: * An (:link - 1 - - 0 - - -19 - - - 2 - :) that refers to the currently handled exception or a copy of the currently handled exception. * If the function needs to allocate memory and the attempt fails, it returns an (:link - 1 - - 0 - - -19 - - - 2 - :) that refers to an instance of std::bad_alloc. !!!!Throws: Nothing. !!!!Notes: * It is unspecified whether the return values of two successive calls to (:link - 1 - - 0 - - -25 - - - 2 - :) refer to the same exception object. * Correct implementation of (:link - 1 - - 0 - - -25 - - - 2 - :) may require compiler support, unless (:link - 1 - - 0 - - -27 - - - 2 - :) was used at the time the currently handled exception object was passed to throw. If (:link - 1 - - 0 - - -27 - - - 2 - :) was not used, and if the compiler does not provide the necessary support, then (:link - 1 - - 0 - - -25 - - - 2 - :) may return an (:link - 1 - - 0 - - -19 - - - 2 - :) that refers to an instance of (:link - 1 - - 0 - - -10 - - - 2 - :). In this case, if the original exception object derives from boost::(:link - 1 - - 0 - - -5 - - - 2 - :), then the boost::(:link - 1 - - 0 - - -5 - - - 2 - :) sub-object of the (:link - 1 - - 0 - - -10 - - - 2 - :) object is initialized by the boost::(:link - 1 - - 0 - - -5 - - - 2 - :) copy constructor. - - - - - 0 - - -26 + -28 @@ -5529,7 +5591,7 @@ 0 - -27 + -30 2 @@ -5538,127 +5600,13 @@ 0 - -25 + -23 2 :)(); }@] - - - 0 - - -27 - - - - 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 - - -19 - - - 2 - :) support in Boost Exception. For example: [@class my_exception: public std::exception { }; .... throw boost::(:link - 1 - - 0 - - -27 - - - 2 - :)(my_exception());@] Unless (:link - 1 - - 0 - - -27 - - - 2 - :) is called at the time an exception object is used in a throw-expression, an attempt to copy it using (:link - 1 - - 0 - - -25 - - - 2 - :) may return an (:link - 1 - - 0 - - -19 - - - 2 - :) which refers to an instance of (:link - 1 - - 0 - - -10 - - - 2 - :). See (:link - 1 - - 0 - - -25 - - - 2 - :) for details. !!!!Note: Instead of using the throw keyword directly, it is preferable to call boost::(:link - 1 - - 0 - - -30 - - - 2 - :). This is guaranteed to throw an exception that derives from boost::(:link - 1 - - 0 - - -5 - - - 2 - :) and supports the (:link - 1 - - 0 - - -19 - - - 2 - :) functionality. - - - - - 0 - - -28 - - - - 0 - - 0 @@ -5667,54 +5615,9 @@ - 11 + 1 2 - (:auto !!:) Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to (:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:), but because Boost Exception can not rely on language support, the use of (:link - 1 - - 0 - - -27 - - - 2 - :) at the time of the throw is required in order to use cloning. !!!!Note: All exceptions emitted by the familiar function boost::(:link - 1 - - 0 - - -30 - - - 2 - :) are guaranteed to derive from boost::(:link - 1 - - 0 - - -5 - - - 2 - :) and to support cloning. (:include - 1 - - 0 - - -23 - - - 2 - :) (:include - 1 - - 0 - - -7 - - - 2 - :) + (:auto !!:) !!!Synopsis (:include synopsis:) @@ -5725,9 +5628,18 @@ - 13 + 21 2 - (:auto !!!:) (:include synopsis:) !!!!Requirements: E must derive publicly from std::exception. !!!!Effects: * If BOOST_NO_EXCEPTIONS is not defined, boost::(:link + (: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 + + -14 + + + 2 + :) support in Boost Exception. For example: [@class my_exception: public std::exception { }; .... throw boost::(:link 1 0 @@ -5736,25 +5648,7 @@ 2 - :)(e) is equivalent to throw boost::(:link - 1 - - 0 - - -27 - - - 2 - :)(boost::(:link - 1 - - 0 - - -11 - - - 2 - :)(e)), unless BOOST_EXCEPTION_DISABLE is defined, in which case boost::(:link + :)(my_exception());@] Unless (:link 1 0 @@ -5763,38 +5657,70 @@ 2 - :)(e) is equivalent to throw e; * If BOOST_NO_EXCEPTIONS is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of + :) is called at the time an exception object is used in a throw-expression, an attempt to copy it using (:link 1 0 - -30 + -23 2 - are allowed to assume that the function never returns; therefore, if the user-defined + :) may return an (:link 1 0 - -30 + -14 2 - returns, the behavior is undefined. - - - - - 0 - - -33 - - - - 1 + :) which refers to an instance of (:link + 1 + + 0 + + -13 + + 2 - (:auto !!:) !!!Synopsis (:include synopsis:) + :). See (:link + 1 + + 0 + + -23 + + + 2 + :) for details. !!!!Note: Instead of using the throw keyword directly, it is preferable to call boost::(:link + 1 + + 0 + + -33 + + + 2 + :). This is guaranteed to throw an exception that derives from boost::(:link + 1 + + 0 + + -8 + + + 2 + :) and supports the (:link + 1 + + 0 + + -14 + + + 2 + :) functionality. @@ -5805,94 +5731,7 @@ - 17 - 2 - (:auto !!:) Boost Exception provides a namespace-scope function - 1 - - 0 - - -32 - - - 2 - which takes a boost:: - 1 - - 0 - - -5 - - - 2 - . The returned string contains: *the string representation of all data objects added to the boost:: - 1 - - 0 - - -5 - - - 2 - through (:link - 1 - - 0 - - -20 - - - 2 - |operator<<:) *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 - - -33 - - - 2 - :)> #include <iostream> void f(); //throws unknown types that derive from boost::(:link - 1 - - 0 - - -5 - - - 2 - :). void g() { try { f(); } catch( boost::(:link - 1 - - 0 - - -5 - - - 2 - :) & e ) { std::cerr << - 1 - - 0 - - -32 - - - 2 - (e); } }@] - - - - - 0 - - -34 - - - - 1 - 2 - (:auto !!:) !!!Synopsis (:include synopsis:) + 0 @@ -5903,9 +5742,45 @@ - 7 + 11 2 - (:auto !!!:) (:include synopsis:) !!!!Returns: This function iterates over all data objects stored in the boost::(:link + (:auto !!:) Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to (:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:), but because Boost Exception can not rely on language support, the use of (:link + 1 + + 0 + + -30 + + + 2 + :) at the time of the throw is required in order to use cloning. !!!!Note: All exceptions emitted by the familiar function boost::(:link + 1 + + 0 + + -33 + + + 2 + :) are guaranteed to derive from boost::(:link + 1 + + 0 + + -8 + + + 2 + :) and to support cloning. (:include + 1 + + 0 + + -27 + + + 2 + :) (:include 1 0 @@ -5914,25 +5789,159 @@ 2 + :) + + + + + 0 + + -33 + + + + 13 + 2 + (:auto !!!:) (:include synopsis:) !!!!Requirements: E must derive publicly from std::exception. !!!!Effects: * If BOOST_NO_EXCEPTIONS is not defined, boost::(:link + 1 + + 0 + + -33 + + + 2 + :)(e) is equivalent to throw boost::(:link + 1 + + 0 + + -30 + + + 2 + :)(boost::(:link + 1 + + 0 + + -15 + + + 2 + :)(e)), unless BOOST_EXCEPTION_DISABLE is defined, in which case boost::(:link + 1 + + 0 + + -33 + + + 2 + :)(e) is equivalent to throw e; * If BOOST_NO_EXCEPTIONS is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of + 1 + + 0 + + -33 + + + 2 + are allowed to assume that the function never returns; therefore, if the user-defined + 1 + + 0 + + -33 + + + 2 + returns, the behavior is undefined. + + + + + 0 + + -34 + + + + 17 + 2 + (:auto !!:) Boost Exception provides a namespace-scope function (:link + 1 + + 0 + + -7 + + + 2 + :) which takes a boost::(:link + 1 + + 0 + + -8 + + + 2 + :). The returned string contains: *the string representation of all data objects added to the boost::(:link + 1 + + 0 + + -8 + + + 2 :) through (:link 1 0 - -20 + -24 2 - |operator<<:). The returned string is constructed by converting each data object to string and then concatenating these strings together. When the (:link + |operator<<:); *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 - -13 + -35 2 - :)<Tag,T> template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string. Otherwise, the system attempts overload resolution for s << x, where s is a std::ostringstream and x is of type T. If this is successful, the operator<< overload is used to convert objects of type T to string. Otherwise the system is unable to convert objects of type T to string, and an unspecified stub string value is used without issuing a compile error. !!!!Notes: *The format of the returned string is unspecified. *The returned string is ''not'' user-friendly. *If dynamic_cast<std::exception const *>(&x) is not null, the returned string includes the output from std::exception::what. *The returned string may include additional platform-specific diagnostic information. + :)> #include <iostream> void f(); //throws unknown types that derive from boost::(:link + 1 + + 0 + + -8 + + + 2 + :). void g() { try { f(); } catch( boost::(:link + 1 + + 0 + + -8 + + + 2 + :) & e ) { std::cerr << (:link + 1 + + 0 + + -7 + + + 2 + :)(e); } }@] @@ -6013,7 +6022,7 @@ 0 - -5 + -8 2 @@ -6035,7 +6044,7 @@ 0 - -22 + -26 2 @@ -6044,7 +6053,7 @@ 0 - -13 + -17 2 @@ -6053,7 +6062,7 @@ 0 - -13 + -17 2 @@ -6062,7 +6071,7 @@ 0 - -13 + -17 2 @@ -6071,7 +6080,7 @@ 0 - -5 + -8 2 @@ -6080,7 +6089,7 @@ 0 - -17 + -21 2 @@ -6153,9 +6162,7 @@ - 1 - 2 - !!!!Throws: std::bad_alloc, or any exception emitted by T1..TN copy constructor. + 0 @@ -6188,7 +6195,9 @@ - 0 + 1 + 2 + !!!!Throws: std::bad_alloc, or any exception emitted by T1..TN copy constructor. @@ -6276,9 +6285,7 @@ - 1 - 2 - !!!!Throws: std::bad_alloc, or any exception emitted by the T copy constructor. + 0 @@ -6322,7 +6329,9 @@ - 0 + 1 + 2 + !!!!Throws: std::bad_alloc, or any exception emitted by the T copy constructor. @@ -6391,17 +6400,6 @@ 0 - - - 0 - - -33 - - - - 0 - - 0 @@ -6417,7 +6415,7 @@ 0 - -34 + -32 @@ -6428,7 +6426,18 @@ 0 - -32 + -33 + + + + 0 + + + + + 0 + + -34 @@ -6533,50 +6542,6 @@ -5 - - 3 - 2 - `#include <(:link - 1 - - 0 - - -35 - - - 2 - :)> [@namespace boost { (:include def pre_indent="4":) }@] - - - - - 0 - - -6 - - - - 3 - 2 - `#include <(:link - 1 - - 0 - - -18 - - - 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] - - - - - 0 - - -7 - - 0 @@ -6585,7 +6550,7 @@ 0 - -8 + -6 @@ -6598,31 +6563,66 @@ 0 - -9 + -7 - 5 + 3 2 `#include <(:link 1 0 - -22 + -29 2 - :)> [@namespace boost { (:include + :)>\\ [@namespace boost { (:include decl pre_indent="4":) }@] + + + + + 0 + + -8 + + + + 3 + 2 + `#include <(:link 1 0 - -9 + -11 2 - decl pre_indent="4":) }@] + :)> [@namespace boost { (:include def pre_indent="4":) }@] + + + + + 0 + + -9 + + + + 3 + 2 + `#include < + 1 + + 0 + + -38 + + + 2 + > (:include decl:) @@ -6640,7 +6640,7 @@ 0 - -18 + -22 2 @@ -6655,18 +6655,9 @@ - 3 + 1 2 - `#include < - 1 - - 0 - - -35 - - - 2 - > [@namespace boost { (:include decl pre_indent="4":) }@] + [@namespace boost { (:include api pre_indent="4":) }@] @@ -6677,7 +6668,27 @@ - 0 + 5 + 2 + `#include <(:link + 1 + + 0 + + -26 + + + 2 + :)> [@namespace boost { (:include + 1 + + 0 + + -12 + + + 2 + decl pre_indent="4":) }@] @@ -6695,11 +6706,11 @@ 0 - -37 + -22 2 - :)> [@namespace boost { (:include def pre_indent="4":) }@] + :)> [@namespace boost { (:include decl pre_indent="4":) }@] @@ -6710,7 +6721,18 @@ - 0 + 3 + 2 + `#include <(:link + 1 + + 0 + + -22 + + + 2 + :)> [@namespace boost { (:include decl pre_indent="4":) }@] @@ -6721,7 +6743,18 @@ - 0 + 3 + 2 + `#include < + 1 + + 0 + + -11 + + + 2 + > [@namespace boost { (:include decl pre_indent="4":) }@] @@ -6742,6 +6775,61 @@ -17 + + 3 + 2 + `#include <(:link + 1 + + 0 + + -37 + + + 2 + :)> [@namespace boost { (:include def pre_indent="4":) }@] + + + + + 0 + + -18 + + + + 0 + + + + + 0 + + -19 + + + + 0 + + + + + 0 + + -20 + + + + 0 + + + + + 0 + + -21 + + 3 2 @@ -6761,7 +6849,7 @@ 0 - -18 + -22 @@ -6772,7 +6860,7 @@ 0 - -35 + -11 2 @@ -6783,7 +6871,7 @@ 0 - -19 + -23 @@ -6794,7 +6882,7 @@ 0 - -18 + -22 2 @@ -6805,7 +6893,7 @@ 0 - -20 + -24 @@ -6827,7 +6915,7 @@ 0 - -21 + -25 @@ -6838,7 +6926,7 @@ 0 - -22 + -26 @@ -6847,83 +6935,6 @@ [@#include <boost/tuple/tuple.hpp> namespace boost { (:include api pre_indent="4":) }@] - - - 0 - - -23 - - - - 0 - - - - - 0 - - -24 - - - - 3 - 2 - `#include < - 1 - - 0 - - -38 - - - 2 - > (:include decl:) - - - - - 0 - - -25 - - - - 3 - 2 - `#include <(:link - 1 - - 0 - - -18 - - - 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] - - - - - 0 - - -26 - - - - 3 - 2 - `#include <(:link - 1 - - 0 - - -18 - - - 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] - - 0 @@ -6932,18 +6943,7 @@ - 3 - 2 - `#include < - 1 - - 0 - - -35 - - - 2 - > [@namespace boost { (:include decl pre_indent="4":) }@] + 0 @@ -6954,7 +6954,18 @@ - 0 + 3 + 2 + `#include <(:link + 1 + + 0 + + -22 + + + 2 + :)> [@namespace boost { (:include decl pre_indent="4":) }@] @@ -6965,7 +6976,9 @@ - 0 + 1 + 2 + [@#include <exception> #include <string> namespace boost { (:include api pre_indent="4":) }@] @@ -6978,29 +6991,16 @@ 3 2 - `#include <(:link + `#include < 1 0 - -38 + -11 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] - - - - - 0 - - -33 - - - - 1 - 2 - [@(:include api:)@] + > [@namespace boost { (:include decl pre_indent="4":) }@] @@ -7018,20 +7018,18 @@ 0 - -34 + -32 - 1 - 2 - [@#include <exception> namespace boost { (:include api pre_indent="4":) }@] + 0 0 - -32 + -33 @@ -7042,11 +7040,22 @@ 0 - -34 + -38 2 - :)>\\ `#include <string> [@namespace boost { (:include decl pre_indent="4":) }@] + :)> [@namespace boost { (:include decl pre_indent="4":) }@] + + + + + 0 + + -34 + + + + 0 @@ -7059,7 +7068,7 @@ 1 2 - [@namespace boost { (:include api pre_indent="4":) }@] + [@(:include api:)@] @@ -7090,7 +7099,7 @@ 0 - -35 + -11 2 @@ -7239,17 +7248,17 @@ -30 - - -33 - -31 - -34 + -32 - -32 + -33 + + + -34 -35 @@ -7291,7 +7300,7 @@ - -28 + -31 @@ -7308,7 +7317,7 @@ - -29 + -32 @@ -7325,7 +7334,7 @@ - -12 + -16 @@ -7350,9 +7359,9 @@ 1 - FED4CEA991FBBA8DF26B5652CE68C929C38BEE74DFD6C8E89E2A623BF0A61503 - 1244906377 - 2548 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 323 @@ -7360,13 +7369,157 @@ 0 - ../../../../boost/exception/diagnostic_information.hpp + ../../../../boost/exception/exception.hpp 0 0 - -34 + -11 + + + + + + + 2 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 + 323 + 2D32D2DE11DB8BDD6F34C94CC165ABEF4F4CCB2D119354FA05811534E2AF356F + 1002290201 + 1604 + 3720 + + + + + + 0 + ../../../../boost/exception/exception.hpp + 0 + 0 + + + + -8 + + + + + + + 3 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 + 323 + 2D32D2DE11DB8BDD6F34C94CC165ABEF4F4CCB2D119354FA05811534E2AF356F + 1002290201 + 1604 + 3720 + DA154372D8C23BD9EDC30005CA7959CE686D198891097A837D006B5222F04DE9 + 2768248809 + 143 + 60 + + + + + + 0 + ../../../../boost/exception/exception.hpp + 0 + 0 + + + + -18 + + + + + + + 2 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 + 323 + 17E691632123EB67BA67D590B49EB8094F462F5A10A66A1C5438E1867EF1478E + 765399792 + 77 + 5326 + + + + + + 0 + ../../../../boost/exception/exception.hpp + 0 + 0 + + + + -40 + + + + + + + 2 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 + 323 + DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9 + 1137981799 + 192 + 8379 + + + + + + 0 + ../../../../boost/exception/exception.hpp + 0 + 0 + + + + -30 + + + + + + + 2 + 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E + 4076172629 + 8577 + 323 + B4D37C317A3B45825DDA1A8C8B1CE71CC2E530D15090D05995FCBEC4247F49C4 + 2742768198 + 258 + 6714 + + + + + + 0 + ../../../../boost/exception/exception.hpp + 0 + 0 + + + + -15 @@ -7390,22 +7543,18 @@ - -7 + -5 - 2 - 5D858F380BC3744F62A182EB6B0F60DB7F0B149CB7B5B36AC1501EBD514EC319 - 3795769778 - 3922 - 518 - D31BCE814DF5B8B718E7EB67A194AD08EF716A26D422E436596ABA1F145007D8 - 4055211476 - 525 - 3391 + 1 + B3FB1F53BE0C995FC6388C2C4510AA859AC443E2E68F1F4E31541A8F7510861F + 3274515267 + 4141 + 323 @@ -7418,50 +7567,18 @@ - -20 + -37 - 2 - 5D858F380BC3744F62A182EB6B0F60DB7F0B149CB7B5B36AC1501EBD514EC319 - 3795769778 - 3922 - 518 - 19910616B1E3D5F4A47BEA017E0D9FE2E36B5DE690A8DE40F6B587BE30C9B1F0 - 1412349234 - 754 - 26 - - - - - - 0 - ../../../../boost/exception/info.hpp - 0 - 0 - - - - -13 - - - - - - - 2 - 214D17B425C1C447F952970DA6B1A778AD45CCA513405EB2DA6EBE87285A852A - 1906283610 - 2414 - 457 - 6B355BB18EB534B5221822257C7A7F834692C7256E5D118F5443C7D905731578 - 1509743294 - 810 - 1598 + 1 + 86015F1EAE1BF32CF58BD22D021B7697EAF6A5B07B79CE46116046B74AAE0327 + 2401878021 + 1632 + 323 @@ -7474,7 +7591,7 @@ - -32 + -29 @@ -7498,31 +7615,35 @@ - -15 + -19 - 1 - CE97847149DCCA83D355ABAA887E4AF8E018C37DE97D618A31214E5077847F43 - 3156684943 - 4115 - 323 + 2 + E86977BC88F0D950B8FD02FC853FFC0D7230B26376B908037F3F4AF429FD9A4D + 557160971 + 1522 + 433 + 25FBAAA29F300B32DF38832E0A102B8A4FAB726B5FAEE428B00DBD5D58D9BB16 + 3475582031 + 1039 + 477 0 - ../../../../boost/exception/get_error_info.hpp + ../../../../boost/exception/diagnostic_information.hpp 0 0 - -36 + -7 @@ -7533,7 +7654,7 @@ 17FF6C63843EE64ED66CB038DD95B4C4D6BA1B0FD36B27BEFD84A909161D2853 1237535165 231 - 1261 + 1255 @@ -7546,175 +7667,7 @@ - -24 - - - - - - - 1 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - -35 - - - - - - - 2 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - 3B6841673B8593C38CF26F79F442E6F129D8DCEB7B7059525CC6537D1C8B968A - 2025879831 - 1411 - 3533 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - -5 - - - - - - - 3 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - 3B6841673B8593C38CF26F79F442E6F129D8DCEB7B7059525CC6537D1C8B968A - 2025879831 - 1411 - 3533 - DA154372D8C23BD9EDC30005CA7959CE686D198891097A837D006B5222F04DE9 - 2768248809 - 143 - 60 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - -14 - - - - - - - 2 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - 17E691632123EB67BA67D590B49EB8094F462F5A10A66A1C5438E1867EF1478E - 765399792 - 77 - 4946 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - -40 - - - - - - - 2 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9 - 1137981799 - 192 - 7957 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - -27 - - - - - - - 2 - C4574E62B0F6F65D3993C41B20ACABD9DD142A509199F23DAEE44067595A705C - 2890266218 - 8155 - 323 - B4D37C317A3B45825DDA1A8C8B1CE71CC2E530D15090D05995FCBEC4247F49C4 - 2742768198 - 258 - 6334 - - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - -11 + -9 @@ -7738,7 +7691,63 @@ - -31 + -34 + + + + + + + 2 + 80895C67727835F0DAB5F5EF65FB2FD9E64008528BD4B800119E88BFB914588F + 2505563498 + 3946 + 518 + 7108B78DA28F7485BBB4D649BEE943AF19A3D63C80DD03F927FDA7A6D8EE2F3B + 3042951402 + 778 + 26 + + + + + + 0 + ../../../../boost/exception/info.hpp + 0 + 0 + + + + -17 + + + + + + + 2 + 80895C67727835F0DAB5F5EF65FB2FD9E64008528BD4B800119E88BFB914588F + 2505563498 + 3946 + 518 + D31BCE814DF5B8B718E7EB67A194AD08EF716A26D422E436596ABA1F145007D8 + 4055211476 + 525 + 3415 + + + + + + 0 + ../../../../boost/exception/info.hpp + 0 + 0 + + + + -24 @@ -7749,7 +7758,7 @@ 612485E090D76B2CC43C1A296F813075BA165C2496082E78E939F10B3DA8E09A 1770110914 587 - 1572 + 1566 60F3F48B87487FA6E0D2CCC0750AF435CC92CEC80BBBF609AC71295031AADD0D 3929437933 361 @@ -7766,7 +7775,7 @@ - -30 + -33 @@ -7794,7 +7803,31 @@ - -17 + -21 + + + + + + + 1 + 004B7821B451CA1B70A9BE6231A5359BE7A5E991793A4B4DB1DB0008905DF6B6 + 2648584333 + 4115 + 323 + + + + + + 0 + ../../../../boost/exception/get_error_info.hpp + 0 + 0 + + + + -36 @@ -7818,31 +7851,7 @@ - -22 - - - - - - - 1 - 063C57ADA280089816203FC3E294E63BC4FCF268AAFF30B4DDFA24178F96F2C5 - 3326118576 - 2088 - 91 - - - - - - 0 - ../../../../boost/throw_exception.hpp - 0 - 0 - - - - -38 + -26 @@ -7866,7 +7875,7 @@ - -23 + -27 @@ -7890,7 +7899,7 @@ - -18 + -22 @@ -7914,31 +7923,7 @@ - -16 - - - - - - - 1 - 2B301067670FD9E4228CA18983BCC789E87F8C53D1894B4668AD8F676CAD41D8 - 2210144139 - 4117 - 323 - - - - - - 0 - ../../../../boost/exception/info.hpp - 0 - 0 - - - - -37 + -20 @@ -7966,7 +7951,7 @@ - -25 + -23 @@ -7994,7 +7979,7 @@ - -19 + -14 @@ -8022,7 +8007,7 @@ - -10 + -13 @@ -8050,7 +8035,7 @@ - -6 + -10 @@ -8078,7 +8063,31 @@ - -26 + -28 + + + + + + + 1 + 05BBA12328429E0E88C8D44170E103FDF8DCD84E0C9AFB19D0478F9F4606FBE7 + 3486222742 + 2082 + 91 + + + + + + 0 + ../../../../boost/throw_exception.hpp + 0 + 0 + + + + -38 @@ -8106,7 +8115,7 @@ - -8 + -6 @@ -8134,7 +8143,7 @@ - -9 + -12 @@ -8158,7 +8167,7 @@ - -21 + -25 @@ -8206,7 +8215,7 @@ - -33 + -35 @@ -8237,7 +8246,7 @@ -5 - type + noalso noindex tutorial @@ -8246,7 +8255,7 @@ -6 - exception_ptr free function + @@ -8255,7 +8264,7 @@ -7 - noalso noindex tutorial + diagnostic_information free function @@ -8264,7 +8273,7 @@ -8 - + type @@ -8273,7 +8282,7 @@ -9 - error_info free function + @@ -8282,7 +8291,7 @@ -10 - exception_ptr type + exception_ptr free function @@ -8291,7 +8300,7 @@ -11 - error_info free function + @@ -8300,7 +8309,7 @@ -12 - tutorial + error_info free function @@ -8309,7 +8318,7 @@ -13 - type + exception_ptr type @@ -8318,7 +8327,7 @@ -14 - function + type @@ -8327,7 +8336,7 @@ -15 - tutorial + error_info free function @@ -8336,7 +8345,7 @@ -16 - noalso noindex tutorial + tutorial @@ -8345,7 +8354,7 @@ -17 - error_info free function + type @@ -8354,7 +8363,7 @@ -18 - + function @@ -8363,7 +8372,7 @@ -19 - type + tutorial @@ -8372,7 +8381,7 @@ -20 - error_info free function + noalso noindex tutorial @@ -8381,7 +8390,7 @@ -21 - noalso noindex tutorial + error_info free function @@ -8399,7 +8408,7 @@ -23 - noalso noindex tutorial + exception_ptr free function @@ -8408,7 +8417,7 @@ -24 - + error_info free function @@ -8417,7 +8426,7 @@ -25 - exception_ptr free function + noalso noindex tutorial @@ -8426,7 +8435,7 @@ -26 - exception_ptr free function + @@ -8435,7 +8444,7 @@ -27 - exception_ptr free function + noalso noindex tutorial @@ -8444,7 +8453,7 @@ -28 - noindex + exception_ptr free function @@ -8453,7 +8462,7 @@ -29 - tutorial + @@ -8462,16 +8471,7 @@ -30 - free function - - - - 0 - - -33 - - - + exception_ptr free function @@ -8480,16 +8480,7 @@ -31 - diagnostic_information tutorial - - - - 0 - - -34 - - - + noindex @@ -8498,7 +8489,25 @@ -32 - diagnostic_information free function + tutorial + + + + 0 + + -33 + + + free function + + + + 0 + + -34 + + + diagnostic_information tutorial diff --git a/doc/throw_exception.html b/doc/throw_exception.html index 27e7b17..d9eee8f 100644 --- a/doc/throw_exception.html +++ b/doc/throw_exception.html @@ -26,14 +26,10 @@ boost { #ifdef BOOST_NO_EXCEPTIONS - - void throw_exception( std::exception const & e ); // user defined - + void throw_exception( std::exception const & e ); // user defined #else - - template <class E> - void throw_exception( E const & e ); - + template <class E> + void throw_exception( E const & e ); #endif }

    Requirements:

    @@ -44,7 +40,8 @@ boost

    See Also:

    -
    Boost Exception
    +
    BOOST_THROW_EXCEPTION
    +
    Boost Exception
    boost/throw_exception.hpp
    enable_current_exception
    Transporting of Exceptions Between Threads
    diff --git a/doc/throw_exception_hpp.html b/doc/throw_exception_hpp.html index 9fbe01f..462b3e1 100644 --- a/doc/throw_exception_hpp.html +++ b/doc/throw_exception_hpp.html @@ -22,26 +22,28 @@

    boost/throw_exception.hpp

    Synopsis

    -
    #include <boost/exception/exception.hpp>
    -#include <exception>
    +
    #if !defined( BOOST_NO_EXCEPTIONS ) && !defined( BOOST_EXCEPTION_DISABLE )
    +    #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__) )
    +#else
    +    #define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
    +#endif
     
    -namespace
    -boost
    -    {
    -    #ifdef BOOST_NO_EXCEPTIONS
    -    
    +#ifdef BOOST_NO_EXCEPTIONS
         void throw_exception( std::exception const & e ); // user defined
    -    
    -    #else
    -    
    +#else
         template <class E>
         void throw_exception( E const & e );
    -    
    -    #endif
    -    }
    -

    +#endif
    +

    See Also:

    -
    Boost Exception
    +
    diff --git a/doc/tutorial_diagnostic_information.html b/doc/tutorial_diagnostic_information.html index 50524fe..916f753 100644 --- a/doc/tutorial_diagnostic_information.html +++ b/doc/tutorial_diagnostic_information.html @@ -21,7 +21,12 @@

    Diagnostic Information

    -

    Class boost::exception provides a virtual member function diagnostic_information, with a signature similar to the familiar std::exception::what function. The default implementation returns a string value that 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:

    +

    Boost Exception provides a namespace-scope function diagnostic_information which takes a boost::exception. The returned string contains:

    +
    • the string representation of all data objects added to the boost::exception through operator<<;
    • +
    • 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 <boost/exception.hpp>
     #include <iostream>
     
    @@ -37,17 +42,12 @@ g()
         catch(
         boost::exception & e )
             {
    -        std::cerr << e.diagnostic_information();
    +        std::cerr << diagnostic_information(e);
             }
         }
    -

    The diagnostic_information member function iterates over all data objects stored in the boost::exception through operator<<. The returned string is constructed by converting each data object to string and then concatenating these strings together.

    -

    When the error_info<Tag,T> template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.

    -

    Otherwise, the system attempts overload resolution for s << x, where s is a std::ostringstream and x is of type T. If this is successful, the operator<< overload is used to convert objects of type T to string.

    -

    Otherwise the system is unable to convert objects of type T to string, and an unspecified stub string value is used without issuing a compile error.