From 9b100b0c9d763c7506b62de2f1e1e16dd3344143 Mon Sep 17 00:00:00 2001 From: Emil Dotchevski Date: Sun, 23 Dec 2012 03:31:48 +0000 Subject: [PATCH] Added verbose parameter to boost::diagnostic_information. [SVN r82179] --- doc/boost_exception_all_hpp.html | 2 +- ..._exception_diagnostic_information_hpp.html | 6 +- doc/boost_exception_hpp.html | 42 - doc/configuration_macros.html | 2 +- ...rent_exception_diagnostic_information.html | 2 +- doc/diagnostic_information.html | 29 +- doc/diagnostic_information_what.html | 2 +- doc/enable_current_exception.html | 2 +- doc/exception_ptr.html | 2 +- doc/frequently_asked_questions.html | 74 +- doc/source/boost-exception.reno | 7589 ++++++++--------- doc/synopsis.html | 6 +- .../exception/detail/error_info_impl.hpp | 6 +- .../boost/exception/detail/exception_ptr.hpp | 4 +- .../exception/diagnostic_information.hpp | 27 +- include/boost/exception/info.hpp | 25 +- test/diagnostic_information_test.cpp | 5 +- 17 files changed, 3811 insertions(+), 4014 deletions(-) delete mode 100644 doc/boost_exception_hpp.html diff --git a/doc/boost_exception_all_hpp.html b/doc/boost_exception_all_hpp.html index d41a493..55db249 100644 --- a/doc/boost_exception_all_hpp.html +++ b/doc/boost_exception_all_hpp.html @@ -40,7 +40,7 @@ #include <boost/exception_ptr.hpp> #endif

-See also: boost/exception.hpp | Diagnostic Information | Integrating Boost Exception in Existing Exception Class Hierarchies | Synopsis +See also: Diagnostic Information | Integrating Boost Exception in Existing Exception Class Hierarchies | Synopsis
diff --git a/doc/boost_exception_diagnostic_information_hpp.html b/doc/boost_exception_diagnostic_information_hpp.html index d2e1bb1..a3a739a 100644 --- a/doc/boost_exception_diagnostic_information_hpp.html +++ b/doc/boost_exception_diagnostic_information_hpp.html @@ -30,11 +30,11 @@ boost class exception; template <class E> - std::string diagnostic_information( E const & e ); + std::string diagnostic_information( E const & e, bool verbose=true ); - std::string diagnostic_information( exception_ptr const & p ); + std::string diagnostic_information( exception_ptr const & p, bool verbose=true ); - char const * diagnostic_information_what( boost::exception const & e ) throw(); + char const * diagnostic_information_what( boost::exception const & e, bool verbose=true ) throw(); std::string current_exception_diagnostic_information(); } diff --git a/doc/boost_exception_hpp.html b/doc/boost_exception_hpp.html deleted file mode 100644 index 821f567..0000000 --- a/doc/boost_exception_hpp.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - boost/exception.hpp - - - -
-
-
-
- -

Boost Exception

-
- - - -

boost/exception.hpp

-
-

This header has been deprecated.

-

Please #include <boost/exception/all.hpp> instead.

-
- - - - -
-
-
- - diff --git a/doc/configuration_macros.html b/doc/configuration_macros.html index 11f6a99..b19ff9f 100644 --- a/doc/configuration_macros.html +++ b/doc/configuration_macros.html @@ -35,7 +35,7 @@

BOOST_THROW_EXCEPTION_CURRENT_FUNCTION

The BOOST_THROW_EXCEPTION macro uses BOOST_THROW_EXCEPTION_CURRENT_FUNCTION to record the name of the current function in the exception object. Unless overridden by the user, BOOST_THROW_EXCEPTION_CURRENT_FUNCTION expands to BOOST_CURRENT_FUNCTION.


-See also: BOOST_THROW_EXCEPTION | Boost Exception | boost/exception/all.hpp | get_error_info +See also: BOOST_THROW_EXCEPTION | Boost Exception | boost/exception/all.hpp | Frequently Asked Questions | get_error_info
diff --git a/doc/current_exception_diagnostic_information.html b/doc/current_exception_diagnostic_information.html index 512005a..25b6841 100644 --- a/doc/current_exception_diagnostic_information.html +++ b/doc/current_exception_diagnostic_information.html @@ -52,7 +52,7 @@ main() } }

-See also: Boost Exception | boost/exception/diagnostic_information.hpp | diagnostic_information +See also: Boost Exception | boost/exception/diagnostic_information.hpp | diagnostic_information | Frequently Asked Questions
diff --git a/doc/diagnostic_information.html b/doc/diagnostic_information.html index 0de2833..2805813 100644 --- a/doc/diagnostic_information.html +++ b/doc/diagnostic_information.html @@ -26,25 +26,21 @@ boost { template <class E> - std::string diagnostic_information( E const & e ); + std::string diagnostic_information( E const & e, bool verbose=true ); - std::string diagnostic_information( exception_ptr const & p ); + std::string diagnostic_information( exception_ptr const & p, bool verbose=true ); }

Returns:

-

A string value that contains varying amount of implementation-specific diagnostic information about the passed object:

-

-See also: Boost Exception | boost/exception/errinfo_nested_exception.hpp | boost/exception_ptr.hpp | copy_exception | current_exception | diagnostic_information | enable_current_exception | Frequently Asked Questions | original_exception_type | rethrow_exception | throw_exception | unknown_exception +See also: Boost Exception | boost/exception/errinfo_nested_exception.hpp | boost/exception_ptr.hpp | copy_exception | current_exception | diagnostic_information | enable_current_exception | original_exception_type | rethrow_exception | throw_exception | unknown_exception
diff --git a/doc/frequently_asked_questions.html b/doc/frequently_asked_questions.html index bae836c..2499bb7 100644 --- a/doc/frequently_asked_questions.html +++ b/doc/frequently_asked_questions.html @@ -21,9 +21,35 @@

Frequently Asked Questions

+

What is the cost of calling boost::throw_exception?

+

The cost is that boost::exception is added as a base of the exception emitted by boost::throw_exception (unless the passed type already derives from boost::exception.)

+

Calling boost::throw_exception does not cause dynamic memory allocations.

+

What is the cost of BOOST_THROW_EXCEPTION?

+

In addition to calling boost::throw_exception, BOOST_THROW_EXCEPTION invokes __FILE__, __LINE__ and the BOOST_THROW_EXCEPTION_CURRENT_FUNCTION macros. The space required to store the information is already included in sizeof(boost::exception).

+

Calling BOOST_THROW_EXCEPTION does not cause dynamic memory allocations.

+

Should I use boost::throw_exception or BOOST_THROW_EXCEPTION or just throw?

+

The benefit of calling boost::throw_exception instead of using throw directly is that it ensures that the emitted exception derives from boost::exception and that it is compatible with boost::current_exception.

+

The BOOST_THROW_EXCEPTION macro also results in a call to boost::throw_exception, but in addition it records in the exception object the __FILE__ and __LINE__ of the throw, as well as the pretty name of the function that throws. This enables boost::diagnostic_information to compose a more useful, if not user-friendly message.

+

Typical use of boost::diagnostic_information is:

+
catch(...)
+    {
+    std::cerr <<
+        "Unexpected exception, diagnostic information follows:\n" <<
+        current_exception_diagnostic_information();
+    }
+

This is a possible message it may display -- the information in the first line is only available if BOOST_THROW_EXCEPTION was used to throw:

+
example_io.cpp(70): 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 boost::errinfo_api_function_ *] = fopen
+[struct boost::errinfo_errno_ *] = 2, "No such file or directory"
+[struct boost::errinfo_file_name_ *] = tmp1.txt
+[struct boost::errinfo_file_open_mode_ *] = rb
+

In some development environments, the first line in that message can be clicked to show the location of the throw in the debugger, so it's easy to set a break point and run again to see the unexpected throw in the context of its call stack.

Why doesn't boost::exception derive from std::exception?

-

Despite that virtual inheritance should be used in deriving from base exception types, many programmers fail to follow this principle when deriving from std::exception. If boost::exception derives from std::exception, using the enable_error_info function with such user-defined types would introduce dangerous ambiguity which would break all catch(std::exception &) statements.

-

Of course, boost::exception should not be used to replace std::exception as a base type in exception type hierarchies. Instead, it should be included as a virtual base, in addition to std::exception (which should also be derived virtually.)

+

Despite that virtual inheritance should be used in deriving from base exception types, quite often exception types (including the ones defined in the standard library) don't derive from std::exception virtually.

+

If boost::exception derives from std::exception, using the enable_error_info function with such user-defined types would introduce dangerous ambiguity which would break all catch(std::exception &) statements.

+

Of course, boost::exception should not be used to replace std::exception as a base type in exception type hierarchies. Instead, it should be included as a virtual base, in addition to std::exception (which should probably also be derived virtually.)

Why is boost::exception abstract?

To prevent exception-neutral contexts from erroneously erasing the type of the original exception when adding error_info to an active exception object:

catch( boost::exception & e )
@@ -37,51 +63,9 @@
     e << foo_info(foo);
     throw; //Okay, re-throwing the original exception object.
     }
-

What is the space overhead of the boost::exception base class?

-

The space overhead for the boost::exception data members is negligible in the context of exception handling. Throwing objects that derive from boost::exception does not by itself cause dynamic memory allocations.

-

Deriving from boost::exception enables any data to be added to exceptions, which usually does allocate memory. However, this memory is reclaimed when the exception has been handled, and since typically user code does not allocate memory during the unrolling of the stack, adding error info to exceptions should not cause memory fragmentation.

-

What is the speed overhead of the boost::exception base class?

-

Throwing objects that derive from boost::exception does not have any speed overhead by itself.

-

Deriving from boost::exception enables any data to be added to exceptions, which internally uses constructs that can be considered quite heavy (such as std::map and std::string.) This is still negligible compared to the typical overhead of throwing and handling of exceptions.

-

Should I use boost::throw_exception or BOOST_THROW_EXCEPTION or just throw?

-

The benefit of calling boost::throw_exception instead of using throw directly is that it ensures that the emitted exception derives from boost::exception and that it is compatible with boost::current_exception.

-

The BOOST_THROW_EXCEPTION macro also results in a call to boost::throw_exception, but in addition it records in the exception object the __FILE__ and __LINE__ of the throw, as well as the pretty name of the function that throws. This has virtually no overhead, yet enables boost::diagnostic_information to compose a more useful, if not user-friendly message.

-

Typical use of boost::diagnostic_information is:

-
catch( boost::exception & e )
-    {
-    std::cerr << "OMG!" << boost::diagnostic_information(e);
-    }
-catch( ... )
-    {
-    std::cerr << "OMG!!!";
-    }
-

This is a possible message it may display, the first line is only possible if BOOST_THROW_EXCEPTION is used:

-
example_io.cpp(70): 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 boost::errinfo_api_function_ *] = fopen
-[struct boost::errinfo_errno_ *] = 2, "No such file or directory"
-[struct boost::errinfo_file_name_ *] = tmp1.txt
-[struct boost::errinfo_file_open_mode_ *] = rb
-

Why is boost::exception integrated in boost::throw_exception?

-

The boost::throw_exception function predates the Boost Exception library and there has been some concern about its current behavior of injecting boost::exception as a base of any exception passed to boost::throw_exception. Such concerns are dictated by the typical strict interpretation of a common principle in C and C++, that users only pay for features they actually use.

-

The problem is that users of Boost Exception can't by themselves cause a library to throw types that derive from boost::exception, and without this they can't use any of the Boost Exception facilities.

-

For example, if a user wants to use Boost Serialization in a separate thread, it is desirable to be able to transport exceptions emitted by that library into the main thread where they can be analyzed to generate a user-friendly message. This can be easily achieved using boost::exception_ptr, but this requires that Boost Serialization throws exceptions using boost::enable_current_exception. If Boost Serialization calls boost::throw_exception to throw, this behavior happens automatically and transparently.

-

The cost of this integration is:

-
  • In terms of space: a pointer and 3 ints are added to the static size of exception objects.
  • -
  • In terms of speed: the pointer is initialized to null at the point of the throw.
  • -
  • In terms of coupling: about 400 self-contained lines of C++ with no external includes.
  • -

Why use operator<< overload for adding info to exceptions?

-

Before throwing an object of type that derives from boost::exception, it is often desirable to add one or more error_info objects in it. The syntactic sugar provided by exception/operator<< allows this to be done directly in a throw expression:

+

Before throwing an object of type that derives from boost::exception, it is often desirable to add one or more error_info objects in it. The syntactic sugar provided by operator<< allows this to be done directly in a throw expression:

throw error() << foo_info(foo) << bar_info(bar);
-

which saves typing compared to this possible alternative:

-
error e;
-e.add(foo_info(foo));
-e.add(bar_info(bar));
-throw e;
-

and looks better than something like:

-
throw error().add(foo_info(foo)).add(bar_info(bar));

Why is operator<< allowed to throw?

This question is referring to the following issue. Consider this throw statement example:

throw file_open_error() << file_name(fn);
diff --git a/doc/source/boost-exception.reno b/doc/source/boost-exception.reno index 71edb09..4daf878 100644 --- a/doc/source/boost-exception.reno +++ b/doc/source/boost-exception.reno @@ -39,7 +39,7 @@ - 76 + 75 0 @@ -53,9 +53,185 @@ 1 - DAC5C6D096B50EDCF8143E4922FC79D2E46FEA2FCD47EAD71D6392C1D8100DB3 - 4003832872 - 668 + 422CF2A57EA6763FBD2F319C4CDD8DD5ADF4493C699B50653015A362F71D4500 + 1282485161 + 2161 + 321 + + + + + 0 + ../../../../boost/exception/info_tuple.hpp + 0 + 0 + + + + + <string>boost/exception/info_tuple.hpp</string> + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + 0 + + 6 + + reno_context + + + + + + 2 + 2F10A76F9BA78353597A5E6F1373E8188DE7AEFDCE29BFD0105527B64B37D00E + 1041541496 + 4693 + 1606 + 20B46D7510ED9F1F40CF3A80C97AE430628745D26173DE91E3D6CB6CEABDAA58 + 2572596214 + 659 + 4028 + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + + <string>diagnostic_information_what</string> + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + 0 + + 7 + + reno_context + + + + + + 2 + EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 + 2916767056 + 11964 + 543 + DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9 + 1137981799 + 192 + 11766 + + + + + 0 + ../../../../boost/exception/exception.hpp + 0 + 0 + + + + + <string>enable_current_exception</string> + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + 0 + + 8 + + reno_context + + + + + + 2 + 21027A2B73C9AA6FF083752A952D63BBA9B5FD68A3C8915965A7184EA62A5D61 + 1523356166 + 537 + 623 + 24256E1CE56594FB38D0630858B8947191827CFC57771E8727A6A56F76207454 + 665917505 + 66 + 26 + + + + + 0 + ../../../../boost/exception/errinfo_errno.hpp + 0 + 0 + + + + + <string>errinfo_errno</string> + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + 0 + + 9 + + reno_context + + + + + + 1 + F2E44174DE588C19C0172D82AD61322E6B6578ADBE2A631C6C8059CB84396D97 + 670214046 + 684 321 @@ -85,7 +261,48 @@ 0 - 6 + 10 + + reno_context + + + + + + 1 + 56C5A51DE37A6E893DA3B25D69DB65E4593C7803C6E34112E1F95C93D6037A82 + 275305396 + 5586 + 321 + + + + + 0 + ../../../../boost/exception/info.hpp + 0 + 0 + + + + + <string>boost/exception/info.hpp</string> + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + 0 + + 11 reno_context @@ -126,7 +343,7 @@ 0 - 7 + 12 reno_context @@ -134,24 +351,17 @@ - 1 - 3624A015B5382483F083885049F332C46D6BA3DCA364E89B298F592BDC3E8632 - 3335511542 - 5611 - 321 + 0 - 0 - ../../../../boost/exception/info.hpp - 0 - 0 + 1 - <string>boost/exception/info.hpp</string> + <string>exception types as simple semantic tags</string> @@ -161,13 +371,127 @@ 1 2 - (:include include:) (:auto also:) + (:include include:) (:auto also:) 0 - 8 + 13 + + reno_context + + + + + + 1 + 91CF203512705C8B2CDCBCD1439821CBF93CFC1A4C2EA2CA91F38DAA3F7720B2 + 1769665510 + 1558 + 352 + + + + + 0 + ../../example/errinfos.cpp + 0 + 0 + + + + + <string>errinfos example</string> + + + + + + + + 0 + + + + 0 + + 14 + + reno_context + + + + + + 1 + FFF4359EFC66EE6AA729B641F38B4020A55E83A1C099BCA59B1CA9A9875E7F79 + 366628170 + 236 + 323 + + + + + 0 + ../../../../boost/exception/errinfo_file_handle.hpp + 0 + 0 + + + + + <string>boost/exception/errinfo_file_handle.hpp</string> + + + + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + 0 + + 15 + + reno_context + + + + + + 0 + + + + + 1 + + + + + <string>Types</string> + + + types + + + + + 1 + 2 + (:include include:) (:auto also:) + + + + 0 + + 16 reno_context @@ -212,52 +536,7 @@ 0 - 9 - - reno_context - - - - - - 2 - EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 - 2916767056 - 11964 - 527 - DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9 - 1137981799 - 192 - 11766 - - - - - 0 - ../../../../boost/exception/exception.hpp - 0 - 0 - - - - - <string>enable_current_exception</string> - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - 0 - - 10 + 17 reno_context @@ -266,247 +545,9 @@ 1 - 91CF203512705C8B2CDCBCD1439821CBF93CFC1A4C2EA2CA91F38DAA3F7720B2 - 1769665510 - 1558 - 352 - - - - - 0 - ../../example/errinfos.cpp - 0 - 0 - - - - - <string>errinfos example</string> - - - - - - - - 0 - - - - 0 - - 11 - - reno_context - - - - - - 0 - - - - - 1 - - - - - <string>Types</string> - - - types - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - 0 - - 12 - - reno_context - - - - - - 2 - AE2244409B3C13F5DB1F6CB575F9433471C6D7D034612E4F4632E13AED32F66D - 869104984 - 4554 - 1558 - 31DAA7256398978790606A24D0BDC208490B1C7F69B7C57D7AC9FF429F789AC8 - 405252553 - 632 - 3916 - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - - <string>diagnostic_information_what</string> - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - 0 - - 13 - - reno_context - - - - - - 0 - - - - - 1 - - - - - <string>exception types as simple semantic tags</string> - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - 0 - - 14 - - reno_context - - - - - - 2 - 21027A2B73C9AA6FF083752A952D63BBA9B5FD68A3C8915965A7184EA62A5D61 - 1523356166 - 537 - 607 - 24256E1CE56594FB38D0630858B8947191827CFC57771E8727A6A56F76207454 - 665917505 - 66 - 26 - - - - - 0 - ../../../../boost/exception/errinfo_errno.hpp - 0 - 0 - - - - - <string>errinfo_errno</string> - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - 0 - - 15 - - reno_context - - - - - - 1 - A1E3F9582095C930245FF6DBA455C6C973F4F025AD6C1D0C3BC7E9494070BAA7 - 293414988 - 113 - 323 - - - - - 0 - ../../../../boost/exception.hpp - 0 - 0 - - - - - <string>boost/exception.hpp</string> - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - 0 - - 16 - - reno_context - - - - - - 1 - ED900027EBB3DB2981FE95FF6D9F2EC9978245672634315A2D7CA944095A1B87 - 3625423705 - 3046 + F971041F60D19AFB8AA50440BC2A911633E5826FDED7B3E1CFC90D241D880C32 + 931174095 + 3062 95 @@ -532,47 +573,6 @@ 2 (:include include:) (:auto also:) - - - 0 - - 17 - - reno_context - - - - - - 1 - FFF4359EFC66EE6AA729B641F38B4020A55E83A1C099BCA59B1CA9A9875E7F79 - 366628170 - 236 - 323 - - - - - 0 - ../../../../boost/exception/errinfo_file_handle.hpp - 0 - 0 - - - - - <string>boost/exception/errinfo_file_handle.hpp</string> - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - 0 @@ -586,50 +586,9 @@ 1 - 195FF369BA559E3C0080F75321794B4808B6A278D4DEF8AEDBD9FCEBCE69C548 - 458631219 - 2145 - 321 - - - - - 0 - ../../../../boost/exception/info_tuple.hpp - 0 - 0 - - - - - <string>boost/exception/info_tuple.hpp</string> - - - - - - - - 1 - 2 - (:include include:) (:auto also:) - - - - 0 - - 19 - - reno_context - - - - - - 1 - A7E1DE1220FF43715F94884D78D93FF18042E0BDE9BA9ACBD8C3138D437AE28C - 3733653590 - 923 + 979343A73CAA7601AF159E6240A03038F47940F71F6DE85D6BA648B179921C35 + 2321681356 + 939 321 @@ -659,7 +618,7 @@ 0 - 20 + 19 reno_context @@ -698,7 +657,7 @@ 0 - 21 + 20 reno_context @@ -739,7 +698,7 @@ 0 - 22 + 21 reno_context @@ -784,7 +743,7 @@ 0 - 23 + 22 reno_context @@ -818,7 +777,7 @@ 0 - 24 + 23 reno_context @@ -827,17 +786,17 @@ 3 - AE2244409B3C13F5DB1F6CB575F9433471C6D7D034612E4F4632E13AED32F66D - 869104984 - 4554 - 1558 - DE799A1987BE19AADE2CACAE91B3E49F7D19C6915CBA23E74B2B3BEA724E25E0 - 3304879774 - 3629 + 2F10A76F9BA78353597A5E6F1373E8188DE7AEFDCE29BFD0105527B64B37D00E + 1041541496 + 4693 + 1606 + 4FDA7B607488BB202B2AB72C17983031070085FB6B616F2B77320088BE08EB62 + 98930276 + 3714 26 - A1E48DF6BBE92549200BD573D0A32B4D206A7CD1F14928B4CB64A8C6A6DA0492 - 1687543439 - 2991 + 28B2A7701322B20C8CF5D6074F9019FBEA2FB02F1A13E83632AA76C431798777 + 1206384617 + 3087 628 @@ -867,7 +826,7 @@ 0 - 25 + 24 reno_context @@ -912,7 +871,7 @@ 0 - 26 + 25 reno_context @@ -953,7 +912,7 @@ 0 - 27 + 26 reno_context @@ -998,7 +957,7 @@ 0 - 28 + 27 reno_context @@ -1010,7 +969,7 @@ 197F3960CFF5CBDEF7BDA8D0DE60948A5328F229C6710FEDE656530A3116B29B 742102996 475 - 1300 + 1316 @@ -1039,7 +998,7 @@ 0 - 29 + 28 reno_context @@ -1051,7 +1010,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 17E691632123EB67BA67D590B49EB8094F462F5A10A66A1C5438E1867EF1478E 765399792 77 @@ -1084,7 +1043,7 @@ 0 - 30 + 29 reno_context @@ -1118,7 +1077,7 @@ 0 - 31 + 30 reno_context @@ -1152,7 +1111,7 @@ 0 - 32 + 31 reno_context @@ -1164,7 +1123,7 @@ FD7792C2929DD7B6BD613636FD0C574D002286E33811BA109B57B9C4D790D340 1830643656 1244 - 1777 + 1793 BAE73EEDFF4059A7561888B4BA054DFA033F0967727630270F2C0D4EB918B88D 3168166030 1222 @@ -1197,7 +1156,7 @@ 0 - 33 + 32 reno_context @@ -1209,7 +1168,7 @@ D58AD357499A5A09FB5D12397CFFC2FFD412AC8A307ABB59C9BC53ACCA3B959D 2209414553 2926 - 708 + 724 49F40FF20D66B205C908A8F10BC61DE1BC571E4917A5BD0B4115E3F7FE3923FA 638776689 2894 @@ -1242,7 +1201,7 @@ 0 - 34 + 33 reno_context @@ -1251,10 +1210,10 @@ 2 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 1D5E771272B020A105B69E186517499873571F62AFF9D48F130C952CFAA12FA3 2841506107 891 @@ -1287,7 +1246,7 @@ 0 - 35 + 34 reno_context @@ -1332,7 +1291,7 @@ 0 - 36 + 35 reno_context @@ -1341,14 +1300,14 @@ 2 - 964F6A1CDF157430B6F65ABDD6A590CFA6AE83EAED66B5B59BA829DB07DF97F2 - 3653363251 - 731 - 817 - 36688510914673386A7870D1D4970B7D74CF9A4B7226F9E225A5607DCBFB12C4 - 2314308857 - 446 - 279 + 8A8FAA48FF123031D5E51D50BC96D0AAC468112838058976B85AC6EED4A25C57 + 4201574956 + 763 + 833 + AEA5C07CF015DDE792E061003F669239E7AADBD24BE554EB26706AD9B28B8C89 + 2503775994 + 472 + 285 @@ -1377,7 +1336,7 @@ 0 - 37 + 36 reno_context @@ -1422,7 +1381,7 @@ 0 - 38 + 37 reno_context @@ -1456,7 +1415,7 @@ 0 - 39 + 38 reno_context @@ -1468,7 +1427,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 @@ -1497,7 +1456,7 @@ 0 - 40 + 39 reno_context @@ -1506,14 +1465,14 @@ 3 - 848BC9161A49BA440F51BAB9C6CCED5C93500327C8741BF5EFA9831C9D690F51 - 2291535325 - 1060 - 548 - 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C - 2825495330 - 622 - 432 + 9516640DF38FC07A649AA4CAF21D4C4A6D6C2DF2B00E608F8D1C653C8D85E58B + 406646287 + 956 + 564 + 8F508F9E7187AEA0E35A268B6F7B8E8A6C6588CCA01A2F3C5BBF1010699D8270 + 1555404133 + 578 + 372 38B566F2C6678B8724D18086A6F76E077DC2ADC1BB69A4B83BF0A2C3B7D31B50 2218658069 31 @@ -1546,7 +1505,7 @@ 0 - 41 + 40 reno_context @@ -1580,7 +1539,7 @@ 0 - 42 + 41 reno_context @@ -1592,7 +1551,7 @@ BF7B46FEFA4E2DED7D652BFD40E94DD0B225ADA8D35E28FF4216F72812589835 422843600 756 - 527 + 543 @@ -1621,7 +1580,7 @@ 0 - 43 + 42 reno_context @@ -1630,10 +1589,10 @@ 2 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4 2078296250 305 @@ -1666,7 +1625,7 @@ 0 - 44 + 43 reno_context @@ -1700,7 +1659,7 @@ 0 - 45 + 44 reno_context @@ -1712,7 +1671,7 @@ 8A5444CF9C854740F83F17EA2075478A983F7C0243DCE4E42551ECBF908C1392 4193409281 322 - 976 + 992 @@ -1741,7 +1700,7 @@ 0 - 46 + 45 reno_context @@ -1750,10 +1709,10 @@ 2 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 10E31FFA267B250065A2630D0B7107862920D940AEA0A5499D5341A902AE01FF 1524325002 368 @@ -1786,7 +1745,7 @@ 0 - 47 + 46 reno_context @@ -1820,7 +1779,7 @@ 0 - 48 + 47 reno_context @@ -1859,7 +1818,7 @@ 0 - 49 + 48 reno_context @@ -1868,14 +1827,14 @@ 3 - 848BC9161A49BA440F51BAB9C6CCED5C93500327C8741BF5EFA9831C9D690F51 - 2291535325 - 1060 - 548 - 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C - 2825495330 - 622 - 432 + 9516640DF38FC07A649AA4CAF21D4C4A6D6C2DF2B00E608F8D1C653C8D85E58B + 406646287 + 956 + 564 + 8F508F9E7187AEA0E35A268B6F7B8E8A6C6588CCA01A2F3C5BBF1010699D8270 + 1555404133 + 578 + 372 98B33BE76679E3A4831241335CD5DFF6F634429F36BABF96C1D4DC2296C5ECC5 1584672077 208 @@ -1908,7 +1867,7 @@ 0 - 50 + 49 reno_context @@ -1920,7 +1879,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 E0D734FE11CFB52F1BBF35C31E84A098AC93881DEE300CDBE3F9B772F75D9B2F 4056200131 2307 @@ -1957,7 +1916,7 @@ 0 - 51 + 50 reno_context @@ -1966,14 +1925,14 @@ 2 - 848BC9161A49BA440F51BAB9C6CCED5C93500327C8741BF5EFA9831C9D690F51 - 2291535325 - 1060 - 548 - 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C - 2825495330 - 622 - 432 + 9516640DF38FC07A649AA4CAF21D4C4A6D6C2DF2B00E608F8D1C653C8D85E58B + 406646287 + 956 + 564 + 8F508F9E7187AEA0E35A268B6F7B8E8A6C6588CCA01A2F3C5BBF1010699D8270 + 1555404133 + 578 + 372 @@ -2002,7 +1961,7 @@ 0 - 52 + 51 reno_context @@ -2011,14 +1970,14 @@ 2 - EFBD8063574E7D463C8E08D9AA1D68CFCE4630C445B20156AC7591F46AB48260 - 2082877988 - 5081 - 751 + C6DDF7D02A058403B7BD295CF1561F167D92B7DA1DAC4EBE9F801955264180EB + 1656366188 + 5040 + 767 6E325144EF4F41FA3A225EB30729101382C4E99B3D6160E307311E4B4E641010 1097215175 161 - 240 + 422 @@ -2047,7 +2006,7 @@ 0 - 53 + 52 reno_context @@ -2088,7 +2047,7 @@ 0 - 54 + 53 reno_context @@ -2121,7 +2080,7 @@ 0 - -13 + -12 2 @@ -2130,7 +2089,7 @@ 0 - 55 + 54 reno_context @@ -2169,7 +2128,7 @@ 0 - 56 + 55 reno_context @@ -2202,7 +2161,29 @@ 0 - 57 + -54 + + + 1 + 2 + (:include include:) (:auto also:) + + + + 0 + + -55 + + + 1 + 2 + (:include include:) (:auto also:) + + + + 0 + + 56 reno_context @@ -2247,18 +2228,7 @@ 0 - -56 - - - 1 - 2 - (:include include:) (:auto also:) - - - - 0 - - 58 + 57 reno_context @@ -2267,18 +2237,18 @@ 3 - EFBD8063574E7D463C8E08D9AA1D68CFCE4630C445B20156AC7591F46AB48260 - 2082877988 - 5081 - 751 - 2C6C9E29E4E23E6C1F5876C33741FB18A63E703410F3CD61ACB348866B7B02B8 - 3516588960 - 3918 - 884 + C6DDF7D02A058403B7BD295CF1561F167D92B7DA1DAC4EBE9F801955264180EB + 1656366188 + 5040 + 767 + 507B2DA4184DD6A38FC6099F6454CDC96604C0C7B2C06A2955C78452F66526F8 + 457758605 + 3872 + 889 38AA79D330846BE1CF17285796F34A9DBB5A7E995963A55F9B46EB1DA6314610 542483318 573 - 3130 + 3084 @@ -2307,7 +2277,7 @@ 0 - 59 + 58 reno_context @@ -2319,7 +2289,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 E0D734FE11CFB52F1BBF35C31E84A098AC93881DEE300CDBE3F9B772F75D9B2F 4056200131 2307 @@ -2356,18 +2326,7 @@ 0 - -55 - - - 1 - 2 - (:include include:) (:auto also:) - - - - 0 - - 60 + 59 reno_context @@ -2379,7 +2338,7 @@ 6FB85B536F965F137409D5B5D34786DCBF0B9957A7C251D271B717A1156B823D 1090406464 362 - 527 + 543 D16DAEA8B1792A019AF7FCA362FDC6EFD381AF4C43C076A01C029ECE51F994A6 3172941848 330 @@ -2412,7 +2371,7 @@ 0 - 61 + 60 reno_context @@ -2451,7 +2410,7 @@ 0 - 62 + 61 reno_context @@ -2496,7 +2455,7 @@ 0 - 63 + 62 reno_context @@ -2530,7 +2489,7 @@ 0 - 64 + 63 reno_context @@ -2569,7 +2528,7 @@ 0 - 65 + 64 reno_context @@ -2610,7 +2569,7 @@ 0 - 66 + 65 reno_context @@ -2619,10 +2578,10 @@ 3 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 97DB2EDAA38019314BA1A582664F8950F5208310F14BAB94E1880AE2C5F00CD4 3076716310 959 @@ -2659,7 +2618,7 @@ 0 - 67 + 66 reno_context @@ -2693,7 +2652,7 @@ 0 - 68 + 67 reno_context @@ -2734,7 +2693,7 @@ 0 - 69 + 68 reno_context @@ -2746,7 +2705,7 @@ 4D7009F0868C1DF4898EC6ECF9AD2CFEA98E8653B01B066106761807405D4C22 1416707852 3107 - 527 + 543 @@ -2775,7 +2734,7 @@ 0 - 70 + 69 reno_context @@ -2809,7 +2768,7 @@ 0 - 71 + 70 reno_context @@ -2818,10 +2777,10 @@ 3 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 2482DDAF6A7E31CF75E93B993C86D9814A0B8899B68E555B23D411BD195FE270 1574307697 8349 @@ -2858,7 +2817,7 @@ 0 - 72 + 71 reno_context @@ -2870,7 +2829,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 F3FB15CD82336271C6E875BC620385322777D16F0B7C233300783CE35710CCBF 3292878997 282 @@ -2903,7 +2862,7 @@ 0 - 73 + 72 reno_context @@ -2912,9 +2871,9 @@ 1 - D7D9E02C29CF870CB25421CA2213D6119D5133CA727F19441CF322D1EA494945 - 693577231 - 5891 + 0CA48A4674CA9C409FF164D9A1B261FB48B0916C0EA387DF2F00DC4637E769BD + 348807582 + 6078 321 @@ -2944,7 +2903,7 @@ 0 - 74 + 73 reno_context @@ -2983,7 +2942,7 @@ 0 - 75 + 74 reno_context @@ -3024,7 +2983,7 @@ 0 - 76 + 75 reno_context @@ -3036,7 +2995,7 @@ 1B4417301AE3C0338C22E6D497391F51ABD459E521E7DFCE59A6EEC1372D33C2 202224383 1766 - 600 + 616 E0A17503B42EE12F31548A7D20F89916D734CE88B30A1BF6F9FC2D1F83A8B6F4 3410340567 1734 @@ -3069,7 +3028,7 @@ 0 - 77 + 76 reno_context @@ -3078,9 +3037,9 @@ 1 - FCAB376A7BB77331C1D5DF08FF08A05BAB40B43F12C0A4B9B2A8253131D7B333 - 3011653711 - 15066 + 3B52D5850D9664639CCF1D22FBD52F2EB99087BED704C3FE07FE185B38C0DD09 + 676740550 + 15108 321 @@ -3110,7 +3069,7 @@ 0 - 78 + 77 reno_context @@ -3119,10 +3078,10 @@ 2 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 EEDBDE62A278D2AF428D9D1ED2ABCFF06163BACD91E12DD033565C7043354B89 246173488 248 @@ -3155,7 +3114,7 @@ 0 - 79 + 78 reno_context @@ -3189,7 +3148,7 @@ 0 - 80 + 79 reno_context @@ -3231,13 +3190,13 @@ def - 81 + 80 reno_layer - 76 + 75 0 @@ -3279,11 +3238,11 @@ 0 - -51 + -50 2 - <struct errinfo_type_info_name_,std::string> + <struct errinfo_errno_,int> 1 0 @@ -3346,27 +3305,7 @@ -14 - 5 - 2 - [@typedef - 1 - - 0 - - -51 - - - 2 - <struct errinfo_errno_,int> - 1 - - 0 - - -14 - - - 2 - ;@] + 0 @@ -3384,7 +3323,27 @@ -16 - 0 + 5 + 2 + [@typedef + 1 + + 0 + + -50 + + + 2 + <struct errinfo_type_info_name_,std::string> + 1 + + 0 + + -16 + + + 2 + ;@] @@ -3429,15 +3388,6 @@ -21 - 0 - - - - 0 - - -22 - - 5 2 [@typedef (:link @@ -3445,7 +3395,7 @@ 0 - -51 + -50 2 @@ -3454,12 +3404,21 @@ 0 - -22 + -21 2 :);@] + + + 0 + + -22 + + + 0 + 0 @@ -3476,15 +3435,6 @@ -24 - 0 - - - - 0 - - -25 - - 7 2 [@typedef (:link @@ -3492,7 +3442,7 @@ 0 - -51 + -50 2 @@ -3501,7 +3451,7 @@ 0 - -34 + -33 2 @@ -3510,7 +3460,7 @@ 0 - -25 + -24 2 @@ -3520,7 +3470,7 @@ 0 - -26 + -25 0 @@ -3529,7 +3479,7 @@ 0 - -27 + -26 5 @@ -3539,7 +3489,7 @@ 0 - -51 + -50 2 @@ -3548,12 +3498,21 @@ 0 - -27 + -26 2 :);@] + + + 0 + + -27 + + + 0 + 0 @@ -3615,15 +3574,6 @@ -34 - 0 - - - - 0 - - -35 - - 5 2 [@typedef @@ -3631,7 +3581,7 @@ 0 - -51 + -50 2 @@ -3640,7 +3590,7 @@ 0 - -35 + -34 2 @@ -3650,7 +3600,7 @@ 0 - -36 + -35 0 @@ -3659,7 +3609,7 @@ 0 - -37 + -36 5 @@ -3669,7 +3619,7 @@ 0 - -51 + -50 2 @@ -3678,12 +3628,21 @@ 0 - -37 + -36 2 :);@] + + + 0 + + -37 + + + 0 + 0 @@ -3790,15 +3749,6 @@ -49 - 0 - - - - 0 - - -50 - - 7 2 [@class (:link @@ -3806,7 +3756,7 @@ 0 - -50 + -49 2 @@ -3815,7 +3765,7 @@ 0 - -59 + -58 2 @@ -3824,7 +3774,7 @@ 0 - -29 + -28 2 @@ -3834,7 +3784,7 @@ 0 - -51 + -50 9 @@ -3844,7 +3794,7 @@ 0 - -51 + -50 2 @@ -3853,7 +3803,7 @@ 0 - -40 + -39 2 @@ -3862,7 +3812,7 @@ 0 - -52 + -51 2 @@ -3871,12 +3821,21 @@ 0 - -49 + -48 2 decl pre_indent="4":) };@] + + + 0 + + -51 + + + 0 + 0 @@ -3908,7 +3867,7 @@ 0 - -57 + -55 0 @@ -3922,6 +3881,15 @@ 0 + + + 0 + + -57 + + + 0 + 0 @@ -3940,15 +3908,6 @@ 0 - - - 0 - - -55 - - - 0 - 0 @@ -3965,15 +3924,6 @@ -61 - 0 - - - - 0 - - -62 - - 5 2 [@typedef (:link @@ -3981,7 +3931,7 @@ 0 - -51 + -50 2 @@ -3990,12 +3940,21 @@ 0 - -62 + -61 2 :);@] + + + 0 + + -62 + + + 0 + 0 @@ -4149,15 +4108,6 @@ 0 - - - 0 - - -80 - - - 0 - @@ -4165,13 +4115,13 @@ api - 82 + 81 reno_layer - 76 + 75 0 @@ -4186,7 +4136,7 @@ 0 - -60 + -75 2 @@ -4208,27 +4158,7 @@ -7 - 5 - 2 - [@(:include - 1 - - 0 - - -51 - - - 2 - def:) (:include - 1 - - 0 - - -58 - - - 2 - decl:)@] + 0 @@ -4246,7 +4176,18 @@ -9 - 0 + 3 + 2 + [@(:include + 1 + + 0 + + -59 + + + 2 + decl:)@] @@ -4255,7 +4196,27 @@ -10 - 0 + 5 + 2 + [@(:include + 1 + + 0 + + -50 + + + 2 + def:) (:include + 1 + + 0 + + -57 + + + 2 + decl:)@] @@ -4291,7 +4252,18 @@ -14 - 0 + 3 + 2 + [@(:include + 1 + + 0 + + -26 + + + 2 + def:)@] @@ -4309,27 +4281,7 @@ -16 - 5 - 2 - [@(:include - 1 - - 0 - - -28 - - - 2 - decl:) namespace boost { (:include - 1 - - 0 - - -32 - - - 2 - decl:) }@] + 0 @@ -4338,7 +4290,7 @@ -17 - 3 + 5 2 [@(:include 1 @@ -4349,7 +4301,16 @@ 2 - def:)@] + decl:) namespace boost { (:include + 1 + + 0 + + -31 + + + 2 + decl:) }@] @@ -4365,11 +4326,11 @@ 0 - -76 + -8 2 - decl:)@] + def:)@] @@ -4378,18 +4339,7 @@ -19 - 3 - 2 - [@(:include - 1 - - 0 - - -14 - - - 2 - def:)@] + 0 @@ -4398,7 +4348,18 @@ -20 - 0 + 3 + 2 + [@(:include + 1 + + 0 + + -16 + + + 2 + def:)@] @@ -4407,18 +4368,7 @@ -21 - 3 - 2 - [@(:include - 1 - - 0 - - -8 - - - 2 - def:)@] + 0 @@ -4454,7 +4404,18 @@ -25 - 0 + 3 + 2 + [@(:include + 1 + + 0 + + -61 + + + 2 + def:)@] @@ -4463,18 +4424,7 @@ -26 - 3 - 2 - [@(:include - 1 - - 0 - - -62 - - - 2 - def:)@] + 0 @@ -4510,7 +4460,18 @@ -30 - 0 + 3 + 2 + [@(:include + 1 + + 0 + + -7 + + + 2 + decl:)@] @@ -4519,18 +4480,7 @@ -31 - 3 - 2 - [@(:include - 1 - - 0 - - -9 - - - 2 - decl:)@] + 0 @@ -4593,15 +4543,6 @@ -38 - 0 - - - - 0 - - -39 - - 11 2 [@(:include @@ -4609,7 +4550,7 @@ 0 - -50 + -49 2 @@ -4618,7 +4559,7 @@ 0 - -51 + -50 2 @@ -4627,7 +4568,7 @@ 0 - -51 + -50 2 @@ -4636,7 +4577,7 @@ 0 - -51 + -50 2 @@ -4645,12 +4586,21 @@ 0 - -51 + -50 2 :)<struct throw_line_,int> throw_line;@] + + + 0 + + -39 + + + 0 + 0 @@ -4667,15 +4617,6 @@ -41 - 0 - - - - 0 - - -42 - - 33 2 [@#include <(:link @@ -4683,7 +4624,7 @@ 0 - -73 + -72 2 @@ -4692,7 +4633,7 @@ 0 - -57 + -56 2 @@ -4701,34 +4642,7 @@ 0 - -39 - - - 2 - :)> #include <(:link - 1 - - 0 - - -69 - - - 2 - :)> #include <(:link - 1 - - 0 - - -7 - - - 2 - :)> #include <(:link - 1 - - 0 - - -18 + -38 2 @@ -4746,7 +4660,7 @@ 0 - -26 + -10 2 @@ -4755,7 +4669,7 @@ 0 - -19 + -5 2 @@ -4764,7 +4678,7 @@ 0 - -17 + -67 2 @@ -4773,7 +4687,7 @@ 0 - -75 + -25 2 @@ -4782,7 +4696,7 @@ 0 - -65 + -18 2 @@ -4791,7 +4705,34 @@ 0 - -21 + -14 + + + 2 + :)> #include <(:link + 1 + + 0 + + -74 + + + 2 + :)> #include <(:link + 1 + + 0 + + -64 + + + 2 + :)> #include <(:link + 1 + + 0 + + -20 2 @@ -4800,7 +4741,7 @@ 0 - -45 + -44 2 @@ -4809,7 +4750,7 @@ 0 - -53 + -52 2 @@ -4818,12 +4759,21 @@ 0 - -77 + -76 2 :)> #endif@] + + + 0 + + -42 + + + 0 + 0 @@ -4912,7 +4862,18 @@ -52 - 0 + 3 + 2 + [@(:include + 1 + + 0 + + -24 + + + 2 + def:)@] @@ -4921,18 +4882,7 @@ -53 - 3 - 2 - [@(:include - 1 - - 0 - - -25 - - - 2 - def:)@] + 0 @@ -4947,7 +4897,16 @@ 0 - -57 + -55 + + + 0 + + + + 0 + + -56 3 @@ -4957,7 +4916,7 @@ 0 - -51 + -50 2 @@ -4967,7 +4926,7 @@ 0 - -56 + -57 0 @@ -4990,15 +4949,6 @@ 0 - - - 0 - - -55 - - - 0 - 0 @@ -5042,15 +4992,6 @@ -64 - 0 - - - - 0 - - -65 - - 3 2 [@(:include @@ -5058,7 +4999,7 @@ 0 - -35 + -34 2 @@ -5068,11 +5009,31 @@ 0 - -66 + -65 0 + + + 0 + + -66 + + + 3 + 2 + [@(:include + 1 + + 0 + + -71 + + + 2 + decl:)@] + 0 @@ -5087,11 +5048,11 @@ 0 - -72 + -21 2 - decl:)@] + def:)@] @@ -5107,11 +5068,11 @@ 0 - -22 + -32 2 - def:)@] + decl:)@] @@ -5120,18 +5081,7 @@ -69 - 3 - 2 - [@(:include - 1 - - 0 - - -33 - - - 2 - decl:)@] + 0 @@ -5158,15 +5108,6 @@ -72 - 0 - - - - 0 - - -73 - - 7 2 [@(:include @@ -5174,7 +5115,7 @@ 0 - -24 + -23 2 @@ -5183,7 +5124,7 @@ 0 - -12 + -6 2 @@ -5192,7 +5133,7 @@ 0 - -36 + -35 2 @@ -5202,7 +5143,7 @@ 0 - -74 + -73 0 @@ -5211,7 +5152,7 @@ 0 - -75 + -74 3 @@ -5221,7 +5162,7 @@ 0 - -37 + -36 2 @@ -5231,7 +5172,7 @@ 0 - -76 + -75 0 @@ -5240,7 +5181,7 @@ 0 - -77 + -76 13 @@ -5250,7 +5191,7 @@ 0 - -66 + -65 2 @@ -5259,7 +5200,7 @@ 0 - -78 + -77 2 @@ -5268,7 +5209,7 @@ 0 - -34 + -33 2 @@ -5277,7 +5218,7 @@ 0 - -43 + -42 2 @@ -5286,7 +5227,7 @@ 0 - -71 + -70 2 @@ -5295,12 +5236,21 @@ 0 - -46 + -45 2 decl:)@] + + + 0 + + -77 + + + 0 + 0 @@ -5319,15 +5269,6 @@ 0 - - - 0 - - -80 - - - 0 - @@ -5335,13 +5276,13 @@ decl - 83 + 82 reno_layer - 76 + 75 0 @@ -5358,7 +5299,27 @@ -6 - 0 + 5 + 2 + [@char const * (:link + 1 + + 0 + + -6 + + + 2 + :)( boost::(:link + 1 + + 0 + + -49 + + + 2 + :) const & e, bool verbose=true ) throw();@] @@ -5367,7 +5328,18 @@ -7 - 0 + 3 + 2 + [@template <class T> ---unspecified--- (:link + 1 + + 0 + + -7 + + + 2 + :)( T const & e );@] @@ -5385,18 +5357,7 @@ -9 - 3 - 2 - [@template <class T> ---unspecified--- (:link - 1 - - 0 - - -9 - - - 2 - :)( T const & e );@] + 0 @@ -5423,27 +5384,7 @@ -12 - 5 - 2 - [@char const * - 1 - - 0 - - -12 - - - 2 - ( boost:: - 1 - - 0 - - -50 - - - 2 - const & e ) throw();@] + 0 @@ -5542,15 +5483,6 @@ -23 - 0 - - - - 0 - - -24 - - 7 2 [@template <class E> std::string (:link @@ -5558,16 +5490,16 @@ 0 - -24 + -23 2 - :)( E const & e ); std::string (:link + :)( E const & e, bool verbose=true ); std::string (:link 1 0 - -24 + -23 2 @@ -5576,11 +5508,20 @@ 0 - -34 + -33 2 - :) const & p );@] + :) const & p, bool verbose=true );@] + + + + 0 + + -24 + + + 0 @@ -5607,15 +5548,6 @@ -27 - 0 - - - - 0 - - -28 - - 21 2 [@#if !defined( BOOST_EXCEPTION_DISABLE ) #include <(:link @@ -5623,7 +5555,7 @@ 0 - -39 + -38 2 @@ -5632,7 +5564,7 @@ 0 - -28 + -27 2 @@ -5641,7 +5573,7 @@ 0 - -32 + -31 2 @@ -5650,7 +5582,7 @@ 0 - -72 + -71 2 @@ -5659,7 +5591,7 @@ 0 - -39 + -38 2 @@ -5668,7 +5600,7 @@ 0 - -45 + -44 2 @@ -5677,7 +5609,7 @@ 0 - -39 + -38 2 @@ -5686,7 +5618,7 @@ 0 - -39 + -38 2 @@ -5695,7 +5627,7 @@ 0 - -28 + -27 2 @@ -5704,7 +5636,7 @@ 0 - -32 + -31 2 @@ -5714,7 +5646,7 @@ 0 - -29 + -28 3 @@ -5724,12 +5656,21 @@ 0 - -29 + -28 2 mod="m":)();@] + + + 0 + + -29 + + + 0 + 0 @@ -5746,15 +5687,6 @@ -31 - 0 - - - - 0 - - -32 - - 5 2 [@#ifdef BOOST_NO_EXCEPTIONS void (:link @@ -5762,7 +5694,7 @@ 0 - -32 + -31 2 @@ -5771,7 +5703,7 @@ 0 - -32 + -31 2 @@ -5781,7 +5713,7 @@ 0 - -33 + -32 1 @@ -5792,7 +5724,7 @@ 0 - -34 + -33 3 @@ -5802,7 +5734,7 @@ 0 - -34 + -33 2 @@ -5812,7 +5744,7 @@ 0 - -35 + -34 0 @@ -5821,7 +5753,7 @@ 0 - -36 + -35 3 @@ -5831,12 +5763,21 @@ 0 - -36 + -35 2 :)();@] + + + 0 + + -36 + + + 0 + 0 @@ -5862,7 +5803,18 @@ -39 - 0 + 3 + 2 + [@typedef T (:link + 1 + + 0 + + -39 + + + 2 + mod="m":);@] @@ -5871,18 +5823,7 @@ -40 - 3 - 2 - [@typedef T (:link - 1 - - 0 - - -40 - - - 2 - mod="m":);@] + 0 @@ -5900,15 +5841,6 @@ -42 - 0 - - - - 0 - - -43 - - 5 2 [@template <class T> (:link @@ -5916,7 +5848,7 @@ 0 - -34 + -33 2 @@ -5925,12 +5857,21 @@ 0 - -43 + -42 2 :)( T const & e );@] + + + 0 + + -43 + + + 0 + 0 @@ -5947,15 +5888,6 @@ -45 - 0 - - - - 0 - - -46 - - 5 2 [@void (:link @@ -5963,7 +5895,7 @@ 0 - -46 + -45 2 @@ -5972,12 +5904,21 @@ 0 - -34 + -33 2 :) const & ep ); + + + 0 + + -46 + + + 0 + 0 @@ -5994,15 +5935,6 @@ -48 - 0 - - - - 0 - - -49 - - 9 2 [@(:link @@ -6010,7 +5942,7 @@ 0 - -40 + -39 2 @@ -6019,7 +5951,7 @@ 0 - -49 + -48 2 @@ -6028,7 +5960,7 @@ 0 - -40 + -39 2 @@ -6037,7 +5969,7 @@ 0 - -49 + -48 2 @@ -6047,13 +5979,33 @@ 0 - -50 + -49 3 2 [@class (:link 1 + + 0 + + -49 + + + 2 + :);@] + + + + 0 + + -50 + + + 3 + 2 + [@template <class Tag,class T> class (:link + 1 0 @@ -6070,9 +6022,9 @@ -51 - 3 + 5 2 - [@template <class Tag,class T> class (:link + [@(:link 1 0 @@ -6081,7 +6033,16 @@ 2 - :);@] + mod="m":)( (:link + 1 + + 0 + + -39 + + + 2 + mod="m":) const & v );@] @@ -6090,27 +6051,7 @@ -52 - 5 - 2 - [@(:link - 1 - - 0 - - -52 - - - 2 - mod="m":)( (:link - 1 - - 0 - - -40 - - - 2 - mod="m":) const & v );@] + 0 @@ -6134,7 +6075,7 @@ 0 - -57 + -55 0 @@ -6152,7 +6093,7 @@ 0 - -58 + -57 5 @@ -6162,7 +6103,7 @@ 0 - -58 + -57 2 @@ -6171,7 +6112,7 @@ 0 - -51 + -50 2 @@ -6181,7 +6122,7 @@ 0 - -59 + -58 7 @@ -6191,7 +6132,7 @@ 0 - -59 + -58 2 @@ -6200,7 +6141,7 @@ 0 - -59 + -58 2 @@ -6209,7 +6150,7 @@ 0 - -50 + -49 2 @@ -6219,16 +6160,7 @@ 0 - -55 - - - 0 - - - - 0 - - -60 + -59 3 @@ -6238,12 +6170,21 @@ 0 - -60 + -59 2 ();@] + + + 0 + + -60 + + + 0 + 0 @@ -6287,15 +6228,6 @@ -65 - 0 - - - - 0 - - -66 - - 5 2 [@class (:link @@ -6303,7 +6235,7 @@ 0 - -66 + -65 2 @@ -6312,12 +6244,21 @@ 0 - -50 + -49 2 { ---unspecified--- };@] + + + 0 + + -66 + + + 0 + 0 @@ -6352,15 +6293,6 @@ -70 - 0 - - - - 0 - - -71 - - 5 2 [@(:link @@ -6368,7 +6300,7 @@ 0 - -34 + -33 2 @@ -6377,7 +6309,7 @@ 0 - -71 + -70 2 @@ -6387,7 +6319,7 @@ 0 - -72 + -71 3 @@ -6397,12 +6329,21 @@ 0 - -72 + -71 2 :)( T const & x );@] + + + 0 + + -72 + + + 0 + 0 @@ -6428,15 +6369,6 @@ -75 - 0 - - - - 0 - - -76 - - 7 2 [@template <class E, class Tag1, class T1, ..., class TagN, class TN> E const & (:link @@ -6444,7 +6376,7 @@ 0 - -76 + -75 2 @@ -6453,7 +6385,7 @@ 0 - -51 + -50 2 @@ -6462,7 +6394,7 @@ 0 - -51 + -50 2 @@ -6472,7 +6404,7 @@ 0 - -77 + -76 0 @@ -6481,7 +6413,7 @@ 0 - -78 + -77 5 @@ -6491,7 +6423,7 @@ 0 - -51 + -50 2 @@ -6500,7 +6432,7 @@ 0 - -78 + -77 2 @@ -6510,7 +6442,7 @@ 0 - -79 + -78 0 @@ -6519,7 +6451,7 @@ 0 - -80 + -79 0 @@ -6531,13 +6463,13 @@ include - 84 + 83 reno_layer - 76 + 75 0 @@ -6556,18 +6488,27 @@ -6 - 19 + 7 2 - (:auto !!:) Boost Exception provides a namespace-scope function (:link + (:auto !!!:) (:include synopsis:) The (:link 1 0 - -24 + -6 2 - :) which takes a boost::(:link + :) function is intended to be called from a user-defined std::exception::what() override. This allows diagnostic information to be returned as the what() string. !!!!Returns: A pointer to a zero-terminated buffer that contains a string similar to the std::string returned by the (:link + 1 + + 0 + + -23 + + + 2 + :) function, or null to indicate a failure. !!!!Throws: Nothing. !!!!Note: The returned pointer becomes invalid if any (:link 1 0 @@ -6576,7 +6517,119 @@ 2 - :). The returned string contains: *the string representation of all data objects added to the boost::(:link + :) is modified or added to the exception object, or if another diagnostic information function is called. + + + + 0 + + -7 + + + 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 + + -33 + + + 2 + :) support in Boost Exception. For example: [@class my_exception: public std::exception { }; .... throw boost::(:link + 1 + + 0 + + -7 + + + 2 + :)(my_exception());@] Unless (:link + 1 + + 0 + + -7 + + + 2 + :) is called at the time an exception object is used in a throw-expression, an attempt to copy it using (:link + 1 + + 0 + + -70 + + + 2 + :) may return an (:link + 1 + + 0 + + -33 + + + 2 + :) which refers to an instance of (:link + 1 + + 0 + + -65 + + + 2 + :). See (:link + 1 + + 0 + + -70 + + + 2 + :) for details. !!!!Note: Instead of using the throw keyword directly, it is preferable to call boost::(:link + 1 + + 0 + + -31 + + + 2 + :). This is guaranteed to throw an exception that derives from boost::(:link + 1 + + 0 + + -49 + + + 2 + :) and supports the (:link + 1 + + 0 + + -33 + + + 2 + :) functionality. + + + + 0 + + -8 + + + 7 + 2 + (:auto !!!:) (:include synopsis:) This type is designed to be used as a standard (:link 1 0 @@ -6585,57 +6638,21 @@ 2 - :) through (:link + :) instance for transporting a relevant errno value in exceptions deriving from boost::(:link 1 0 - -58 + -49 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 + :). !!!Example: (:include 1 0 - -42 - - - 2 - :)> #include <iostream> void f(); //throws unknown types that derive from boost::(:link - 1 - - 0 - - -50 - - - 2 - :). void g() { try { f(); } catch( boost::(:link - 1 - - 0 - - -50 - - - 2 - :) & e ) { std::cerr << (:link - 1 - - 0 - - -24 - - - 2 - :)(e); } }@] (:include - 1 - - 0 - - -61 + -13 2 @@ -6645,143 +6662,13 @@ 0 - -7 + -9 1 2 (:auto !!:) !!!Synopsis (:include synopsis:) - - - 0 - - -8 - - - 5 - 2 - (:auto !!!:) (:include synopsis:) This type is designed to be used as a standard - 1 - - 0 - - -51 - - - 2 - instance for transporting strings returned by std::type_info::name in exceptions deriving from boost:: - 1 - - 0 - - -50 - - - 2 - objects. - - - - 0 - - -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 - - -34 - - - 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 - - -71 - - - 2 - :) may return an (:link - 1 - - 0 - - -34 - - - 2 - :) which refers to an instance of (:link - 1 - - 0 - - -66 - - - 2 - :). See (:link - 1 - - 0 - - -71 - - - 2 - :) for details. !!!!Note: Instead of using the throw keyword directly, it is preferable to call boost::(:link - 1 - - 0 - - -32 - - - 2 - :). This is guaranteed to throw an exception that derives from boost::(:link - 1 - - 0 - - -50 - - - 2 - :) and supports the (:link - 1 - - 0 - - -34 - - - 2 - :) functionality. - 0 @@ -6789,6 +6676,147 @@ -10 + 1 + 2 + (:auto !!:) !!!Synopsis (:include synopsis:) + + + + 0 + + -11 + + + 19 + 2 + (:auto !!:) Boost Exception provides a namespace-scope function (:link + 1 + + 0 + + -23 + + + 2 + :) which takes a boost::(:link + 1 + + 0 + + -49 + + + 2 + :). The returned string contains: *the string representation of all data objects added to the boost::(:link + 1 + + 0 + + -49 + + + 2 + :) through (:link + 1 + + 0 + + -57 + + + 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 + + -41 + + + 2 + :)> #include <iostream> void f(); //throws unknown types that derive from boost::(:link + 1 + + 0 + + -49 + + + 2 + :). void g() { try { f(); } catch( boost::(:link + 1 + + 0 + + -49 + + + 2 + :) & e ) { std::cerr << (:link + 1 + + 0 + + -23 + + + 2 + :)(e); } }@] (:include + 1 + + 0 + + -60 + + + 2 + :) + + + + 0 + + -12 + + + 7 + 2 + (:auto !!!:) Deriving from boost::(:link + 1 + + 0 + + -49 + + + 2 + :) effectively decouples the semantics of a failure from the information that is relevant to each individual instance of reporting a failure with a given semantic. In other words: with boost::(:link + 1 + + 0 + + -49 + + + 2 + :), what data a given exception object transports depends primarily on the context in which failures are reported (not on its type.) Since exception types need no members, it becomes very natural to throw exceptions that derive from more than one type to indicate multiple appropriate semantics: [@struct exception_base: virtual std::exception, virtual boost::(:link + 1 + + 0 + + -49 + + + 2 + :) { }; struct io_error: virtual exception_base { }; struct file_error: virtual io_error { }; struct read_error: virtual io_error { }; struct file_read_error: virtual file_error, virtual read_error { };@] Using this approach, exception types become a simple tagging system for categorizing errors and selecting failures in exception handlers. + + + + 0 + + -13 + + 37 2 [@#include <(:link @@ -6796,7 +6824,7 @@ 0 - -68 + -67 2 @@ -6805,7 +6833,7 @@ 0 - -26 + -25 2 @@ -6814,7 +6842,43 @@ 0 - -19 + -18 + + + 2 + :)> #include <(:link + 1 + + 0 + + -14 + + + 2 + :)> #include <(:link + 1 + + 0 + + -74 + + + 2 + :)> #include <(:link + 1 + + 0 + + -64 + + + 2 + :)> #include <(:link + 1 + + 0 + + -10 2 @@ -6827,48 +6891,12 @@ 2 - :)> #include <(:link - 1 - - 0 - - -75 - - - 2 - :)> #include <(:link - 1 - - 0 - - -65 - - - 2 - :)> #include <(:link - 1 - - 0 - - -7 - - - 2 - :)> #include <(:link - 1 - - 0 - - -16 - - - 2 :)> #include <boost/shared_ptr.hpp> #include <boost/weak_ptr.hpp> #include <stdio.h> #include <errno.h> #include <exception> struct error : virtual std::exception, virtual boost::(:link 1 0 - -50 + -49 2 @@ -6877,7 +6905,7 @@ 0 - -28 + -27 2 @@ -6886,7 +6914,7 @@ 0 - -22 + -21 2 @@ -6895,7 +6923,7 @@ 0 - -14 + -8 2 @@ -6904,7 +6932,7 @@ 0 - -37 + -36 2 @@ -6913,7 +6941,7 @@ 0 - -35 + -34 2 @@ -6922,7 +6950,7 @@ 0 - -28 + -27 2 @@ -6931,7 +6959,7 @@ 0 - -22 + -21 2 @@ -6940,7 +6968,7 @@ 0 - -14 + -8 2 @@ -6949,7 +6977,7 @@ 0 - -27 + -26 2 @@ -6959,147 +6987,24 @@ 0 - -11 + -14 + + + 1 + 2 + (:auto !!:) !!!Synopsis (:include synopsis:) + + + + 0 + + -15 1 2 (:auto !!:) (:pagelist fmt="index" tags="type":) - - - 0 - - -12 - - - 7 - 2 - (:auto !!!:) (:include synopsis:) The - 1 - - 0 - - -12 - - - 2 - function is intended to be called from a user-defined std::exception::what() override. This allows diagnostic information to be returned as the what() string. !!!!Returns: A pointer to a zero-terminated buffer that contains a string similar to the std::string returned by the - 1 - - 0 - - -24 - - - 2 - function, or null to indicate a failure. !!!!Throws: Nothing. !!!!Note: The returned pointer becomes invalid if any - 1 - - 0 - - -51 - - - 2 - is modified or added to the exception object, or if another diagnostic information function is called. - - - - 0 - - -13 - - - 7 - 2 - (:auto !!!:) Deriving from boost::(:link - 1 - - 0 - - -50 - - - 2 - :) effectively decouples the semantics of a failure from the information that is relevant to each individual instance of reporting a failure with a given semantic. In other words: with boost::(:link - 1 - - 0 - - -50 - - - 2 - :), what data a given exception object transports depends primarily on the context in which failures are reported (not on its type.) Since exception types need no members, it becomes very natural to throw exceptions that derive from more than one type to indicate multiple appropriate semantics: [@struct exception_base: virtual std::exception, virtual boost::(:link - 1 - - 0 - - -50 - - - 2 - :) { }; struct io_error: virtual exception_base { }; struct file_error: virtual io_error { }; struct read_error: virtual io_error { }; struct file_read_error: virtual file_error, virtual read_error { };@] Using this approach, exception types become a simple tagging system for categorizing errors and selecting failures in exception handlers. - - - - 0 - - -14 - - - 7 - 2 - (:auto !!!:) (:include synopsis:) This type is designed to be used as a standard (:link - 1 - - 0 - - -51 - - - 2 - :) instance for transporting a relevant errno value in exceptions deriving from boost::(:link - 1 - - 0 - - -50 - - - 2 - :). !!!Example: (:include - 1 - - 0 - - -10 - - - 2 - :) - - - - 0 - - -15 - - - 3 - 2 - (:auto !!:) This header has been deprecated. Please #include < - 1 - - 0 - - -42 - - - 2 - > instead. - 0 @@ -7107,9 +7012,27 @@ -16 - 1 + 5 2 - (:auto !!:) !!!Synopsis (:include synopsis:) + (:auto !!!:) (:include synopsis:) This type is designed to be used as a standard + 1 + + 0 + + -50 + + + 2 + instance for transporting strings returned by std::type_info::name in exceptions deriving from boost:: + 1 + + 0 + + -49 + + + 2 + objects. @@ -7140,21 +7063,37 @@ -19 - 1 - 2 - (:auto !!:) !!!Synopsis (:include synopsis:) - - - - 0 - - -20 - - 19 2 (:auto !!!:) The code snippet below demonstrates how boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|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 <(:link 1 + + 0 + + -5 + + + 2 + :)> #include <(:link + 1 + + 0 + + -74 + + + 2 + :)> #include <(:link + 1 + + 0 + + -67 + + + 2 + :)> #include <(:link + 1 0 @@ -7162,39 +7101,12 @@ 2 - :)> #include <(:link - 1 - - 0 - - -75 - - - 2 - :)> #include <(:link - 1 - - 0 - - -68 - - - 2 - :)> #include <(:link - 1 - - 0 - - -19 - - - 2 :)> #include <boost/shared_ptr.hpp> #include <stdio.h> #include <string> #include <errno.h> typedef boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)<boost::(:link 1 0 - -22 + -21 2 @@ -7203,7 +7115,7 @@ 0 - -14 + -8 2 @@ -7212,7 +7124,7 @@ 0 - -50 + -49 2 @@ -7221,7 +7133,7 @@ 0 - -37 + -36 2 @@ -7230,7 +7142,7 @@ 0 - -33 + -32 2 @@ -7240,7 +7152,7 @@ 0 - -21 + -20 1 @@ -7251,7 +7163,7 @@ 0 - -22 + -21 7 @@ -7261,7 +7173,7 @@ 0 - -51 + -50 2 @@ -7270,7 +7182,7 @@ 0 - -50 + -49 2 @@ -7279,7 +7191,7 @@ 0 - -10 + -13 2 @@ -7289,7 +7201,7 @@ 0 - -23 + -22 69 @@ -7299,7 +7211,7 @@ 0 - -79 + -78 2 @@ -7308,7 +7220,7 @@ 0 - -32 + -31 2 @@ -7317,7 +7229,7 @@ 0 - -54 + -53 2 @@ -7326,7 +7238,7 @@ 0 - -38 + -37 2 @@ -7335,7 +7247,7 @@ 0 - -55 + -54 2 @@ -7344,7 +7256,7 @@ 0 - -79 + -78 2 @@ -7353,7 +7265,7 @@ 0 - -13 + -12 2 @@ -7362,7 +7274,7 @@ 0 - -47 + -46 2 @@ -7371,7 +7283,7 @@ 0 - -6 + -11 2 @@ -7380,7 +7292,7 @@ 0 - -50 + -49 2 @@ -7389,7 +7301,43 @@ 0 - -28 + -27 + + + 2 + :) ###(:link + 1 + + 0 + + -31 + + + 2 + :) ##Transporting of Arbitrary Data to the Catch Site ###(:link + 1 + + 0 + + -50 + + + 2 + :) ###(:link + 1 + + 0 + + -57 + + + 2 + :) ###(:link + 1 + + 0 + + -75 2 @@ -7402,69 +7350,6 @@ 2 - :) ##Transporting of Arbitrary Data to the Catch Site ###(:link - 1 - - 0 - - -51 - - - 2 - :) ###(:link - 1 - - 0 - - -58 - - - 2 - :) ###(:link - 1 - - 0 - - -76 - - - 2 - :) ###(:link - 1 - - 0 - - -33 - - - 2 - :) ###(:link - 1 - - 0 - - -72 - - - 2 - :) ##(:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:) Transporting of Exceptions between Threads ###(:link - 1 - - 0 - - -34 - - - 2 - :) ###(:link - 1 - - 0 - - -9 - - - 2 :) ###(:link 1 @@ -7474,12 +7359,12 @@ 2 - :) ###(:link + :) ##(:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:) Transporting of Exceptions between Threads ###(:link 1 0 - -43 + -33 2 @@ -7488,84 +7373,12 @@ 0 - -46 + -7 2 :) ###(:link 1 - - 0 - - -66 - - - 2 - :) ##Diagnostic Information ###(:link - 1 - - 0 - - -24 - - - 2 - :) ###(:link - 1 - - 0 - - -36 - - - 2 - :) ##(:link - 1 - - 0 - - -60 - - - 2 - :) #API ##(:link - 1 - - 0 - - -44 - - - 2 - :) ##(:link - 1 - - 0 - - -30 - - - 2 - :) ##(:link - 1 - - 0 - - -11 - - - 2 - :) ##(:link - 1 - - 0 - - -41 - - - 2 - :) ##(:link - 1 0 @@ -7573,7 +7386,16 @@ 2 - :) ##(:link + :) ###(:link + 1 + + 0 + + -42 + + + 2 + :) ###(:link 1 0 @@ -7582,12 +7404,93 @@ 2 - mod="w":) #(:link + :) ###(:link 1 0 - -56 + -65 + + + 2 + :) ##Diagnostic Information ###(:link + 1 + + 0 + + -23 + + + 2 + :) ###(:link + 1 + + 0 + + -35 + + + 2 + :) ##(:link + 1 + + 0 + + -59 + + + 2 + :) #API ##(:link + 1 + + 0 + + -43 + + + 2 + :) ##(:link + 1 + + 0 + + -29 + + + 2 + :) ##(:link + 1 + + 0 + + -15 + + + 2 + :) ##(:link + 1 + + 0 + + -40 + + + 2 + :) ##(:link + 1 + + 0 + + -69 + + + 2 + :) ##(:link + 1 + + 0 + + -44 2 @@ -7596,7 +7499,16 @@ 0 - -63 + -55 + + + 2 + mod="w":) #(:link + 1 + + 0 + + -62 2 @@ -7606,12 +7518,39 @@ 0 - -24 + -23 - 37 + 39 2 - (:auto !!!:) (:include synopsis:) !!!!Returns: A string value that contains varying amount of implementation-specific diagnostic information about the passed object: *If E can be statically converted to boost::(:link + (:auto !!!:) (:include synopsis:) !!!!Returns: A string value that contains varying amount of diagnostic information about the passed object: * If E can be statically converted to either boost::(:link + 1 + + 0 + + -49 + + + 2 + :) or to std::exception, dynamic_cast is used to access both the boost::(:link + 1 + + 0 + + -49 + + + 2 + :) and std::exception subobjects of e; otherwise, the boost::(:link + 1 + + 0 + + -23 + + + 2 + :) template is not available. * The returned value contains the string representations of all (:link 1 0 @@ -7620,80 +7559,8 @@ 2 - :), the returned value contains the string representations of all (:link - 1 - - 0 - - -51 - - - 2 :) objects stored in the boost::(:link 1 - - 0 - - -50 - - - 2 - :) through (:link - 1 - - 0 - - -58 - - - 2 - mod="/":), along with other diagnostic information relevant to the exception. If e can be dynamically converted to std::exception, the returned value also contains the what() string. *Otherwise, if E can be statically converted to std::exception: **if e can be dynamically converted to boost::exception, the returned value is the same as if E could be statically converted to boost::(:link - 1 - - 0 - - -50 - - - 2 - :); **otherwise the returned value contains the what() string. *Otherwise, the boost::(:link - 1 - - 0 - - -24 - - - 2 - :) template is not available. The string representation of each (:link - 1 - - 0 - - -51 - - - 2 - :) object is deduced by a function call that is bound at the time the (:link - 1 - - 0 - - -51 - - - 2 - :)<Tag,T> template is instantiated. The following overload resolutions are attempted in order: #Unqualified call to to_string(x), where x is of type (:link - 1 - - 0 - - -51 - - - 2 - :)<Tag,T> (the return value is expected to be of type std::string.) #Unqualified call to to_string(x.(:link - 1 0 @@ -7701,12 +7568,66 @@ 2 + :) subobject through (:link + 1 + + 0 + + -57 + + + 2 + mod="/":). * In addition, if verbose is true, it contains other diagnostic information relevant to the exception, including the string returned by std::exception::what(). The string representation of each (:link + 1 + + 0 + + -50 + + + 2 + :) object is deduced by an unqualified call to to_string(x), where x is of type (:link + 1 + + 0 + + -50 + + + 2 + :)<Tag,T>, for which Boost Exception defines a generic overload. It converts x.(:link + 1 + + 0 + + -48 + + + 2 + mod="m":)() to string, attempting to bind (at the time the (:link + 1 + + 0 + + -50 + + + 2 + :)<Tag,T> template is instantiated) the following functions in order: #Unqualified call to to_string(x.(:link + 1 + + 0 + + -48 + + + 2 mod="m":)()) (the return value is expected to be of type std::string.) #Unqualified call to s << x.(:link 1 0 - -49 + -48 2 @@ -7715,16 +7636,16 @@ 0 - -24 + -23 2 - :) is called; if all 3 overload resolutions are unsuccessful, the system is unable to convert the (:link + :) is called; if both overload resolutions are unsuccessful, the system is unable to convert the (:link 1 0 - -51 + -50 2 @@ -7733,7 +7654,7 @@ 0 - -34 + -33 2 @@ -7742,7 +7663,7 @@ 0 - -24 + -23 2 @@ -7751,7 +7672,7 @@ 0 - -46 + -45 2 @@ -7760,16 +7681,16 @@ 0 - -36 + -35 2 - :)(); } else return <unspecified-string-value>;@] !!!!Notes: *The format of the returned string is unspecified. *The returned string is ''not'' user-friendly. *The returned string may include additional platform-specific diagnostic information. (:include + :)(verbose); } else return <unspecified-string-value>;@] (:include 1 0 - -61 + -60 2 @@ -7779,7 +7700,7 @@ 0 - -25 + -24 7 @@ -7789,7 +7710,7 @@ 0 - -51 + -50 2 @@ -7798,7 +7719,7 @@ 0 - -50 + -49 2 @@ -7807,7 +7728,7 @@ 0 - -34 + -33 2 @@ -7817,13 +7738,51 @@ 0 - -26 + -25 1 2 (:auto !!:) !!!Synopsis (:include synopsis:) + + + 0 + + -26 + + + 7 + 2 + (:auto !!!:) (:include synopsis:) This type is designed to be used as a standard (:link + 1 + + 0 + + -50 + + + 2 + :) instance for transporting a relevant FILE pointer managed by a boost::shared_ptr<FILE> in exceptions deriving from boost::(:link + 1 + + 0 + + -49 + + + 2 + :). !!!Example: (:include + 1 + + 0 + + -13 + + + 2 + :) + 0 @@ -7833,50 +7792,12 @@ 7 2 - (:auto !!!:) (:include synopsis:) This type is designed to be used as a standard (:link - 1 - - 0 - - -51 - - - 2 - :) instance for transporting a relevant FILE pointer managed by a boost::shared_ptr<FILE> in exceptions deriving from boost::(:link - 1 - - 0 - - -50 - - - 2 - :). !!!Example: (:include - 1 - - 0 - - -10 - - - 2 - :) - - - - 0 - - -28 - - - 7 - 2 (:auto !!!:) (:include synopsis:) This macro takes an exception object, records the current function name, __FILE__ and __LINE__ in it, and forwards it to (:link 1 0 - -32 + -31 2 @@ -7885,7 +7806,7 @@ 0 - -33 + -32 2 @@ -7894,7 +7815,7 @@ 0 - -24 + -23 2 @@ -7904,7 +7825,7 @@ 0 - -29 + -28 3 @@ -7914,7 +7835,7 @@ 0 - -50 + -49 2 @@ -7924,7 +7845,7 @@ 0 - -30 + -29 1 @@ -7935,7 +7856,7 @@ 0 - -31 + -30 1 @@ -7946,7 +7867,7 @@ 0 - -32 + -31 15 @@ -7956,7 +7877,7 @@ 0 - -32 + -31 2 @@ -7965,7 +7886,7 @@ 0 - -50 + -49 2 @@ -7974,7 +7895,7 @@ 0 - -32 + -31 2 @@ -7983,7 +7904,7 @@ 0 - -32 + -31 2 @@ -7992,7 +7913,7 @@ 0 - -50 + -49 2 @@ -8001,7 +7922,7 @@ 0 - -34 + -33 2 @@ -8010,7 +7931,7 @@ 0 - -32 + -31 2 @@ -8020,7 +7941,7 @@ 0 - -33 + -32 13 @@ -8030,7 +7951,7 @@ 0 - -51 + -50 2 @@ -8039,7 +7960,7 @@ 0 - -50 + -49 2 @@ -8048,7 +7969,7 @@ 0 - -58 + -57 2 @@ -8057,7 +7978,7 @@ 0 - -33 + -32 2 @@ -8066,7 +7987,7 @@ 0 - -33 + -32 2 @@ -8075,7 +7996,7 @@ 0 - -45 + -44 2 @@ -8085,7 +8006,7 @@ 0 - -34 + -33 23 @@ -8095,7 +8016,7 @@ 0 - -34 + -33 2 @@ -8104,7 +8025,7 @@ 0 - -34 + -33 2 @@ -8113,7 +8034,7 @@ 0 - -34 + -33 2 @@ -8122,7 +8043,7 @@ 0 - -34 + -33 2 @@ -8131,7 +8052,7 @@ 0 - -34 + -33 2 @@ -8140,7 +8061,7 @@ 0 - -34 + -33 2 @@ -8149,7 +8070,7 @@ 0 - -34 + -33 2 @@ -8158,7 +8079,7 @@ 0 - -34 + -33 2 @@ -8167,7 +8088,7 @@ 0 - -34 + -33 2 @@ -8176,7 +8097,7 @@ 0 - -51 + -50 2 @@ -8185,7 +8106,7 @@ 0 - -50 + -49 2 @@ -8195,7 +8116,7 @@ 0 - -35 + -34 7 @@ -8205,7 +8126,7 @@ 0 - -51 + -50 2 @@ -8214,7 +8135,7 @@ 0 - -50 + -49 2 @@ -8223,7 +8144,7 @@ 0 - -10 + -13 2 @@ -8233,7 +8154,7 @@ 0 - -36 + -35 9 @@ -8243,7 +8164,7 @@ 0 - -50 + -49 2 @@ -8252,7 +8173,7 @@ 0 - -24 + -23 2 @@ -8261,7 +8182,7 @@ 0 - -36 + -35 2 @@ -8270,7 +8191,7 @@ 0 - -36 + -35 2 @@ -8280,7 +8201,7 @@ 0 - -37 + -36 7 @@ -8290,7 +8211,7 @@ 0 - -51 + -50 2 @@ -8299,7 +8220,7 @@ 0 - -50 + -49 2 @@ -8308,7 +8229,63 @@ 0 - -10 + -13 + + + 2 + :) + + + + 0 + + -37 + + + 11 + 2 + (:auto !!:) All exception types that derive from boost::(:link + 1 + + 0 + + -49 + + + 2 + :) can be used as type-safe containers of arbitrary data objects, while complying with the no-throw requirements (15.5.1) of the ANSI C++ standard for exception types. When exceptions derive from boost::(:link + 1 + + 0 + + -49 + + + 2 + :), arbitrary data can be added to exception objects: *At the point of the throw; *At a later time as exceptions bubble up the call stack. (:include + 1 + + 0 + + -63 + + + 2 + :) (:include + 1 + + 0 + + -47 + + + 2 + :) (:include + 1 + + 0 + + -19 2 @@ -8321,62 +8298,6 @@ -38 - 11 - 2 - (:auto !!:) All exception types that derive from boost::(:link - 1 - - 0 - - -50 - - - 2 - :) can be used as type-safe containers of arbitrary data objects, while complying with the no-throw requirements (15.5.1) of the ANSI C++ standard for exception types. When exceptions derive from boost::(:link - 1 - - 0 - - -50 - - - 2 - :), arbitrary data can be added to exception objects: *At the point of the throw; *At a later time as exceptions bubble up the call stack. (:include - 1 - - 0 - - -64 - - - 2 - :) (:include - 1 - - 0 - - -48 - - - 2 - :) (:include - 1 - - 0 - - -20 - - - 2 - :) - - - - 0 - - -39 - - 1 2 (:auto !!:) !!!Synopsis (:include synopsis:) @@ -8385,7 +8306,7 @@ 0 - -40 + -39 5 @@ -8395,7 +8316,7 @@ 0 - -51 + -50 2 @@ -8404,7 +8325,7 @@ 0 - -40 + -39 2 @@ -8414,7 +8335,7 @@ 0 - -41 + -40 1 @@ -8425,7 +8346,7 @@ 0 - -42 + -41 1 @@ -8436,7 +8357,7 @@ 0 - -43 + -42 5 @@ -8446,7 +8367,7 @@ 0 - -9 + -7 2 @@ -8455,7 +8376,7 @@ 0 - -71 + -70 2 @@ -8465,7 +8386,7 @@ 0 - -44 + -43 77 @@ -8475,7 +8396,7 @@ 0 - -39 + -38 2 @@ -8484,7 +8405,7 @@ 0 - -39 + -38 2 @@ -8493,7 +8414,7 @@ 0 - -57 + -56 2 @@ -8502,7 +8423,7 @@ 0 - -57 + -56 2 @@ -8511,7 +8432,7 @@ 0 - -7 + -10 2 @@ -8520,61 +8441,7 @@ 0 - -7 - - - 2 - synopsis:)@] `#include <(:link - 1 - - 0 - - -18 - - - 2 - :)> [@(:include - 1 - - 0 - - -18 - - - 2 - synopsis:)@] `#include <(:link - 1 - - 0 - - -67 - - - 2 - :)> [@(:include - 1 - - 0 - - -67 - - - 2 - synopsis:)@] `#include <(:link - 1 - - 0 - - -73 - - - 2 - :)> [@(:include - 1 - - 0 - - -73 + -10 2 @@ -8601,7 +8468,7 @@ 0 - -77 + -66 2 @@ -8610,7 +8477,7 @@ 0 - -77 + -66 2 @@ -8619,7 +8486,7 @@ 0 - -31 + -72 2 @@ -8628,7 +8495,7 @@ 0 - -31 + -72 2 @@ -8637,7 +8504,7 @@ 0 - -16 + -9 2 @@ -8646,7 +8513,7 @@ 0 - -16 + -9 2 @@ -8655,56 +8522,38 @@ 0 - -68 + -76 2 - :)> (:include + :)> [@(:include 1 0 - -68 + -76 2 - synopsis:) `#include <(:link + synopsis:)@] `#include <(:link 1 0 - -26 + -30 2 - :)> (:include + :)> [@(:include 1 0 - -26 + -30 2 - synopsis:) `#include <(:link - 1 - - 0 - - -19 - - - 2 - :)> (:include - 1 - - 0 - - -19 - - - 2 - synopsis:) `#include <(:link + synopsis:)@] `#include <(:link 1 0 @@ -8713,7 +8562,7 @@ 2 - :)> (:include + :)> [@(:include 1 0 @@ -8722,12 +8571,12 @@ 2 - synopsis:) `#include <(:link + synopsis:)@] `#include <(:link 1 0 - -75 + -67 2 @@ -8736,7 +8585,7 @@ 0 - -75 + -67 2 @@ -8745,7 +8594,7 @@ 0 - -65 + -25 2 @@ -8754,7 +8603,79 @@ 0 - -65 + -25 + + + 2 + synopsis:) `#include <(:link + 1 + + 0 + + -18 + + + 2 + :)> (:include + 1 + + 0 + + -18 + + + 2 + synopsis:) `#include <(:link + 1 + + 0 + + -14 + + + 2 + :)> (:include + 1 + + 0 + + -14 + + + 2 + synopsis:) `#include <(:link + 1 + + 0 + + -74 + + + 2 + :)> (:include + 1 + + 0 + + -74 + + + 2 + synopsis:) `#include <(:link + 1 + + 0 + + -64 + + + 2 + :)> (:include + 1 + + 0 + + -64 2 @@ -8763,7 +8684,7 @@ 0 - -53 + -52 2 @@ -8772,7 +8693,7 @@ 0 - -53 + -52 2 @@ -8781,7 +8702,7 @@ 0 - -21 + -20 2 @@ -8790,7 +8711,7 @@ 0 - -21 + -20 2 @@ -8799,7 +8720,7 @@ 0 - -42 + -41 2 @@ -8808,7 +8729,7 @@ 0 - -42 + -41 2 @@ -8818,7 +8739,7 @@ 0 - -45 + -44 21 @@ -8828,7 +8749,7 @@ 0 - -33 + -32 2 @@ -8837,7 +8758,7 @@ 0 - -33 + -32 2 @@ -8846,7 +8767,7 @@ 0 - -50 + -49 2 @@ -8855,7 +8776,7 @@ 0 - -9 + -7 2 @@ -8864,7 +8785,7 @@ 0 - -72 + -71 2 @@ -8873,7 +8794,7 @@ 0 - -32 + -31 2 @@ -8882,7 +8803,7 @@ 0 - -16 + -17 2 @@ -8891,7 +8812,7 @@ 0 - -32 + -31 2 @@ -8900,7 +8821,7 @@ 0 - -24 + -23 2 @@ -8909,7 +8830,7 @@ 0 - -28 + -27 2 @@ -8919,7 +8840,7 @@ 0 - -46 + -45 1 @@ -8930,7 +8851,7 @@ 0 - -47 + -46 5 @@ -8940,7 +8861,7 @@ 0 - -50 + -49 2 @@ -8949,7 +8870,7 @@ 0 - -13 + -12 2 @@ -8959,7 +8880,7 @@ 0 - -48 + -47 19 @@ -8969,7 +8890,7 @@ 0 - -50 + -49 2 @@ -8978,7 +8899,7 @@ 0 - -42 + -41 2 @@ -8987,7 +8908,7 @@ 0 - -50 + -49 2 @@ -8996,7 +8917,7 @@ 0 - -14 + -8 2 @@ -9005,7 +8926,7 @@ 0 - -42 + -41 2 @@ -9014,7 +8935,7 @@ 0 - -50 + -49 2 @@ -9023,7 +8944,7 @@ 0 - -37 + -36 2 @@ -9032,7 +8953,7 @@ 0 - -50 + -49 2 @@ -9041,7 +8962,7 @@ 0 - -50 + -49 2 @@ -9051,7 +8972,7 @@ 0 - -49 + -48 5 @@ -9061,7 +8982,7 @@ 0 - -51 + -50 2 @@ -9070,7 +8991,7 @@ 0 - -51 + -50 2 @@ -9080,7 +9001,7 @@ 0 - -50 + -49 13 @@ -9090,7 +9011,7 @@ 0 - -50 + -49 2 @@ -9099,7 +9020,7 @@ 0 - -50 + -49 2 @@ -9108,7 +9029,7 @@ 0 - -51 + -50 2 @@ -9117,7 +9038,7 @@ 0 - -58 + -57 2 @@ -9126,7 +9047,7 @@ 0 - -50 + -49 2 @@ -9135,7 +9056,7 @@ 0 - -33 + -32 2 @@ -9145,7 +9066,7 @@ 0 - -51 + -50 41 @@ -9155,7 +9076,7 @@ 0 - -51 + -50 2 @@ -9164,7 +9085,7 @@ 0 - -58 + -57 2 @@ -9173,7 +9094,7 @@ 0 - -50 + -49 2 @@ -9182,7 +9103,7 @@ 0 - -57 + -56 2 @@ -9191,7 +9112,7 @@ 0 - -51 + -50 2 @@ -9200,7 +9121,7 @@ 0 - -57 + -56 2 @@ -9209,7 +9130,7 @@ 0 - -51 + -50 2 @@ -9218,7 +9139,7 @@ 0 - -57 + -56 2 @@ -9227,7 +9148,7 @@ 0 - -51 + -50 2 @@ -9236,7 +9157,7 @@ 0 - -58 + -57 2 @@ -9245,7 +9166,7 @@ 0 - -7 + -10 2 @@ -9254,7 +9175,7 @@ 0 - -50 + -49 2 @@ -9263,7 +9184,7 @@ 0 - -58 + -57 2 @@ -9272,7 +9193,7 @@ 0 - -33 + -32 2 @@ -9281,7 +9202,7 @@ 0 - -69 + -68 2 @@ -9290,7 +9211,7 @@ 0 - -50 + -49 2 @@ -9299,7 +9220,7 @@ 0 - -50 + -49 2 @@ -9308,7 +9229,7 @@ 0 - -33 + -32 2 @@ -9317,7 +9238,7 @@ 0 - -51 + -50 2 @@ -9326,7 +9247,7 @@ 0 - -58 + -57 2 @@ -9336,7 +9257,7 @@ 0 - -52 + -51 3 @@ -9346,7 +9267,7 @@ 0 - -51 + -50 2 @@ -9356,7 +9277,7 @@ 0 - -53 + -52 1 @@ -9367,7 +9288,7 @@ 0 - -54 + -53 33 @@ -9377,7 +9298,7 @@ 0 - -50 + -49 2 @@ -9386,7 +9307,7 @@ 0 - -50 + -49 2 @@ -9395,7 +9316,7 @@ 0 - -51 + -50 2 @@ -9404,7 +9325,7 @@ 0 - -58 + -57 2 @@ -9413,7 +9334,7 @@ 0 - -50 + -49 2 @@ -9422,7 +9343,7 @@ 0 - -51 + -50 2 @@ -9431,7 +9352,7 @@ 0 - -50 + -49 2 @@ -9440,7 +9361,7 @@ 0 - -58 + -57 2 @@ -9449,7 +9370,7 @@ 0 - -50 + -49 2 @@ -9458,7 +9379,7 @@ 0 - -58 + -57 2 @@ -9467,7 +9388,7 @@ 0 - -50 + -49 2 @@ -9476,7 +9397,7 @@ 0 - -33 + -32 2 @@ -9485,7 +9406,7 @@ 0 - -33 + -32 2 @@ -9494,7 +9415,7 @@ 0 - -24 + -23 2 @@ -9503,7 +9424,7 @@ 0 - -51 + -50 2 @@ -9512,19 +9433,518 @@ 0 - -50 + -49 2 :). This is useful for inclusion in logs and other diagnostic objects. + + 0 + + -54 + + + 27 + 2 + (:auto !!:) Some exception hierarchies can not be modified to make boost::(:link + 1 + + 0 + + -49 + + + 2 + :) a base type. In this case, the (:link + 1 + + 0 + + -71 + + + 2 + :) function template can be used to make exception objects derive from boost::(:link + 1 + + 0 + + -49 + + + 2 + :) anyway. Here is an example: [@#include <(:link + 1 + + 0 + + -41 + + + 2 + :)> #include <stdexcept> typedef boost::(:link + 1 + + 0 + + -50 + + + 2 + :)<struct tag_std_range_min,size_t> std_range_min; typedef boost::(:link + 1 + + 0 + + -50 + + + 2 + :)<struct tag_std_range_max,size_t> std_range_max; typedef boost::(:link + 1 + + 0 + + -50 + + + 2 + :)<struct tag_std_range_index,size_t> std_range_index; template <class T> class my_container { public: size_t size() const; T const & operator[]( size_t i ) const { if( i > size() ) throw boost::(:link + 1 + + 0 + + -71 + + + 2 + :)(std::range_error("Index out of range")) << std_range_min(0) << std_range_max(size()) << std_range_index(i); //.... } }; @] The call to (:link + 1 + + 0 + + -71 + + + 2 + :)<T> gets us an object of ''unspecified type'' which is guaranteed to derive from both boost::(:link + 1 + + 0 + + -49 + + + 2 + :) and T. This makes it possible to use (:link + 1 0 -57 + 2 + mod="/":) to store additional information in the exception object. The exception can be intercepted as T &, so existing exception handling will not break. It can also be intercepted as boost::(:link + 1 + + 0 + + -49 + + + 2 + :) &, so that (:link + 1 + + 0 + + -37 + + + 2 + |more information can be added to the exception at a later time:). + + + + 0 + + -55 + + + 81 + 2 + (:auto !!:) !!!What is the cost of calling boost::throw_exception? The cost is that boost::(:link + 1 + + 0 + + -49 + + + 2 + :) is added as a base of the exception emitted by boost::(:link + 1 + + 0 + + -31 + + + 2 + :) (unless the passed type already derives from boost::(:link + 1 + + 0 + + -49 + + + 2 + :).) Calling boost::(:link + 1 + + 0 + + -31 + + + 2 + :) does not cause dynamic memory allocations. !!!What is the cost of BOOST_THROW_EXCEPTION? In addition to calling boost::(:link + 1 + + 0 + + -31 + + + 2 + :), + 1 + + 0 + + -27 + + + 2 + invokes __FILE__, __LINE__ and the (:link + 1 + + 0 + + -44 + + + 2 + |BOOST_THROW_EXCEPTION_CURRENT_FUNCTION:) macros. The space required to store the information is already included in sizeof(boost::(:link + 1 + + 0 + + -49 + + + 2 + :)). Calling + 1 + + 0 + + -27 + + + 2 + does not cause dynamic memory allocations. !!!Should I use boost::throw_exception or BOOST_THROW_EXCEPTION or just throw? The benefit of calling boost::(:link + 1 + + 0 + + -31 + + + 2 + :) instead of using throw directly is that it ensures that the emitted exception derives from boost::(:link + 1 + + 0 + + -49 + + + 2 + :) and that it is compatible with boost::(:link + 1 + + 0 + + -70 + + + 2 + :). The (:link + 1 + + 0 + + -27 + + + 2 + :) macro also results in a call to boost::(:link + 1 + + 0 + + -31 + + + 2 + :), but in addition it records in the exception object the __FILE__ and __LINE__ of the throw, as well as the pretty name of the function that throws. This enables boost::(:link + 1 + + 0 + + -23 + + + 2 + :) to compose a more useful, if not user-friendly message. Typical use of boost::(:link + 1 + + 0 + + -23 + + + 2 + :) is: [@catch(...) { std::cerr << "Unexpected exception, diagnostic information follows:\n" << + 1 + + 0 + + -35 + + + 2 + (); }@] This is a possible message it may display -- the information in the first line is only available if (:link + 1 + + 0 + + -27 + + + 2 + :) was used to throw: [@example_io.cpp(70): 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 boost::(:link + 1 + + 0 + + -21 + + + 2 + :)_ *] = fopen [struct boost::(:link + 1 + + 0 + + -8 + + + 2 + :)_ *] = 2, "No such file or directory" [struct boost::(:link + 1 + + 0 + + -36 + + + 2 + :)_ *] = tmp1.txt [struct boost::(:link + 1 + + 0 + + -34 + + + 2 + :)_ *] = rb@] In some development environments, the first line in that message can be clicked to show the location of the throw in the debugger, so it's easy to set a break point and run again to see the unexpected throw in the context of its call stack. !!!Why doesn't boost::exception derive from std::exception? Despite that (:link + 1 + + 0 + + -46 + + + 2 + |virtual inheritance should be used in deriving from base exception types:), quite often exception types (including the ones defined in the standard library) don't derive from std::exception virtually. If boost::(:link + 1 + + 0 + + -49 + + + 2 + :) derives from std::exception, using the (:link + 1 + + 0 + + -71 + + + 2 + :) function with such user-defined types would introduce dangerous ambiguity which would break all catch(std::exception &) statements. Of course, boost::(:link + 1 + + 0 + + -49 + + + 2 + :) should not be used to replace std::exception as a base type in exception type hierarchies. Instead, it should be included as a virtual base, in addition to std::exception (which should probably also be derived virtually.) !!!Why is boost::exception abstract? To prevent exception-neutral contexts from erroneously erasing the type of the original exception when adding (:link + 1 + + 0 + + -50 + + + 2 + :) to an active exception object: [@catch( boost::(:link + 1 + + 0 + + -49 + + + 2 + :) & e ) { e (:link + 1 + + 0 + + -57 + + + 2 + |<<:) foo_info(foo); throw e; //Compile error: boost::(:link + 1 + + 0 + + -49 + + + 2 + :) is abstract }@] The correct code is: [@catch( boost::(:link + 1 + + 0 + + -49 + + + 2 + :) & e ) { e (:link + 1 + + 0 + + -57 + + + 2 + |<<:) foo_info(foo); throw; //Okay, re-throwing the original exception object. }@] !!!Why use operator<< overload for adding info to exceptions? Before throwing an object of type that derives from boost::(:link + 1 + + 0 + + -49 + + + 2 + :), it is often desirable to add one or more (:link + 1 + + 0 + + -50 + + + 2 + :) objects in it. The syntactic sugar provided by (:link + 1 + + 0 + + -57 + + + 2 + mod="/":) allows this to be done directly in a throw expression: [@throw error() (:link + 1 + + 0 + + -57 + + + 2 + |<<:) foo_info(foo) (:link + 1 + + 0 + + -57 + + + 2 + |<<:) bar_info(bar);@] !!!Why is operator<< allowed to throw? This question is referring to the following issue. Consider this throw statement example: [@throw file_open_error() (:link + 1 + + 0 + + -57 + + + 2 + |<<:) file_name(fn);@] The intention here is to throw a file_open_error, however if (:link + 1 + + 0 + + -57 + + + 2 + mod="/":) fails to copy the std::string contained in the file_name (:link + 1 + + 0 + + -50 + + + 2 + :) wrapper, a std::bad_alloc could propagate instead. This behavior seems undesirable to some programmers. Bjarne Stroustrup, The C++ Programming Language, 3rd Edition, page 371: ->''"Throwing an exception requires an object to throw. A C++ implementation is required to have enough spare memory to be able to throw bad_alloc in case of memory exhaustion. However, it is possible that throwing some other exception will cause memory exhaustion."'' Therefore, the language itself does not guarantee that an attempt to throw an exception is guaranteed to throw an object of the specified type; propagating a std::bad_alloc seems to be a possibility even outside of the scope of Boost Exception. + + + + 0 + + -56 + + 1 2 (:auto !!:) !!!Synopsis (:include synopsis:) @@ -9533,378 +9953,7 @@ 0 - -56 - - - 81 - 2 - (:auto !!:) !!!Why doesn't boost::exception derive from std::exception? Despite that (:link - 1 - - 0 - - -47 - - - 2 - |virtual inheritance should be used in deriving from base exception types:), many programmers fail to follow this principle when deriving from std::exception. If boost::(:link - 1 - - 0 - - -50 - - - 2 - :) derives from std::exception, using the (:link - 1 - - 0 - - -72 - - - 2 - :) function with such user-defined types would introduce dangerous ambiguity which would break all catch(std::exception &) statements. Of course, boost::(:link - 1 - - 0 - - -50 - - - 2 - :) should not be used to replace std::exception as a base type in exception type hierarchies. Instead, it should be included as a virtual base, in addition to std::exception (which should also be derived virtually.) !!!Why is boost::exception abstract? To prevent exception-neutral contexts from erroneously erasing the type of the original exception when adding (:link - 1 - - 0 - - -51 - - - 2 - :) to an active exception object: [@catch( boost::(:link - 1 - - 0 - - -50 - - - 2 - :) & e ) { e (:link - 1 - - 0 - - -58 - - - 2 - |<<:) foo_info(foo); throw e; //Compile error: boost::(:link - 1 - - 0 - - -50 - - - 2 - :) is abstract }@] The correct code is: [@catch( boost::(:link - 1 - - 0 - - -50 - - - 2 - :) & e ) { e (:link - 1 - - 0 - - -58 - - - 2 - |<<:) foo_info(foo); throw; //Okay, re-throwing the original exception object. }@] !!!What is the space overhead of the boost::exception base class? The space overhead for the boost::exception data members is negligible in the context of exception handling. Throwing objects that derive from boost::(:link - 1 - - 0 - - -50 - - - 2 - :) does not by itself cause dynamic memory allocations. Deriving from boost::(:link - 1 - - 0 - - -50 - - - 2 - :) enables any data to be added to exceptions, which usually does allocate memory. However, this memory is reclaimed when the exception has been handled, and since typically user code does not allocate memory during the unrolling of the stack, adding error info to exceptions should not cause memory fragmentation. !!!What is the speed overhead of the boost::exception base class? Throwing objects that derive from boost::exception does not have any speed overhead by itself. Deriving from boost::(:link - 1 - - 0 - - -50 - - - 2 - :) enables any data to be added to exceptions, which internally uses constructs that can be considered quite heavy (such as std::map and std::string.) This is still negligible compared to the typical overhead of throwing and handling of exceptions. !!!Should I use boost::throw_exception or BOOST_THROW_EXCEPTION or just throw? The benefit of calling boost::(:link - 1 - - 0 - - -32 - - - 2 - :) instead of using throw directly is that it ensures that the emitted exception derives from boost::(:link - 1 - - 0 - - -50 - - - 2 - :) and that it is compatible with boost::(:link - 1 - - 0 - - -71 - - - 2 - :). The (:link - 1 - - 0 - - -28 - - - 2 - :) macro also results in a call to boost::(:link - 1 - - 0 - - -32 - - - 2 - :), but in addition it records in the exception object the __FILE__ and __LINE__ of the throw, as well as the pretty name of the function that throws. This has virtually no overhead, yet enables boost::(:link - 1 - - 0 - - -24 - - - 2 - :) to compose a more useful, if not user-friendly message. Typical use of boost::(:link - 1 - - 0 - - -24 - - - 2 - :) is: [@catch( boost::exception & e ) { std::cerr << "OMG!" << boost::diagnostic_information(e); } catch( ... ) { std::cerr << "OMG!!!"; }@] This is a possible message it may display, the first line is only possible if (:link - 1 - - 0 - - -28 - - - 2 - :) is used: [@example_io.cpp(70): 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 boost::(:link - 1 - - 0 - - -22 - - - 2 - :)_ *] = fopen [struct boost::(:link - 1 - - 0 - - -14 - - - 2 - :)_ *] = 2, "No such file or directory" [struct boost::(:link - 1 - - 0 - - -37 - - - 2 - :)_ *] = tmp1.txt [struct boost::(:link - 1 - - 0 - - -35 - - - 2 - :)_ *] = rb@] !!!Why is boost::exception integrated in boost::throw_exception? The boost::(:link - 1 - - 0 - - -32 - - - 2 - :) function predates the Boost Exception library and there has been some concern about its current behavior of injecting boost::(:link - 1 - - 0 - - -50 - - - 2 - :) as a base of any exception passed to boost::(:link - 1 - - 0 - - -32 - - - 2 - :). Such concerns are dictated by the typical strict interpretation of a common principle in C and C++, that users only pay for features they actually use. The problem is that users of Boost Exception can't by themselves cause a library to throw types that derive from boost::(:link - 1 - - 0 - - -50 - - - 2 - :), and without this they can't use any of the Boost Exception facilities. For example, if a user wants to use Boost Serialization in a separate thread, it is desirable to be able to transport exceptions emitted by that library into the main thread where they can be analyzed to generate a user-friendly message. This can be easily achieved using boost::(:link - 1 - - 0 - - -34 - - - 2 - :), but this requires that Boost Serialization throws exceptions using boost::(:link - 1 - - 0 - - -9 - - - 2 - :). If Boost Serialization calls boost::(:link - 1 - - 0 - - -32 - - - 2 - :) to throw, this behavior happens automatically and transparently. The cost of this integration is: * In terms of space: a pointer and 3 ints are added to the static size of exception objects. * In terms of speed: the pointer is initialized to null at the point of the throw. * In terms of coupling: about 400 self-contained lines of C++ with no external includes. !!!Why use operator<< overload for adding info to exceptions? Before throwing an object of type that derives from boost::(:link - 1 - - 0 - - -50 - - - 2 - :), it is often desirable to add one or more (:link - 1 - - 0 - - -51 - - - 2 - :) objects in it. The syntactic sugar provided by (:link - 1 - - 0 - - -58 - - - 2 - :) allows this to be done directly in a throw expression: [@throw error() (:link - 1 - - 0 - - -58 - - - 2 - |<<:) foo_info(foo) (:link - 1 - - 0 - - -58 - - - 2 - |<<:) bar_info(bar);@] which saves typing compared to this possible alternative: [@error e; e.add(foo_info(foo)); e.add(bar_info(bar)); throw e;@] and looks better than something like: [@throw error().add(foo_info(foo)).add(bar_info(bar));@] !!!Why is operator<< allowed to throw? This question is referring to the following issue. Consider this throw statement example: [@throw file_open_error() (:link - 1 - - 0 - - -58 - - - 2 - |<<:) file_name(fn);@] The intention here is to throw a file_open_error, however if (:link - 1 - - 0 - - -58 - - - 2 - mod="/":) fails to copy the std::string contained in the file_name (:link - 1 - - 0 - - -51 - - - 2 - :) wrapper, a std::bad_alloc could propagate instead. This behavior seems undesirable to some programmers. Bjarne Stroustrup, The C++ Programming Language, 3rd Edition, page 371: ->''"Throwing an exception requires an object to throw. A C++ implementation is required to have enough spare memory to be able to throw bad_alloc in case of memory exhaustion. However, it is possible that throwing some other exception will cause memory exhaustion."'' Therefore, the language itself does not guarantee that an attempt to throw an exception is guaranteed to throw an object of the specified type; propagating a std::bad_alloc seems to be a possibility even outside of the scope of Boost Exception. - - - - 0 - - -58 + -57 7 @@ -9914,7 +9963,7 @@ 0 - -50 + -49 2 @@ -9923,7 +9972,7 @@ 0 - -50 + -49 2 @@ -9932,7 +9981,7 @@ 0 - -51 + -50 2 @@ -9942,7 +9991,7 @@ 0 - -59 + -58 7 @@ -9952,7 +10001,7 @@ 0 - -50 + -49 2 @@ -9961,7 +10010,7 @@ 0 - -50 + -49 2 @@ -9970,7 +10019,7 @@ 0 - -58 + -57 2 @@ -9980,135 +10029,7 @@ 0 - -55 - - - 27 - 2 - (:auto !!:) Some exception hierarchies can not be modified to make boost::(:link - 1 - - 0 - - -50 - - - 2 - :) a base type. In this case, the (:link - 1 - - 0 - - -72 - - - 2 - :) function template can be used to make exception objects derive from boost::(:link - 1 - - 0 - - -50 - - - 2 - :) anyway. Here is an example: [@#include <(:link - 1 - - 0 - - -42 - - - 2 - :)> #include <stdexcept> typedef boost::(:link - 1 - - 0 - - -51 - - - 2 - :)<struct tag_std_range_min,size_t> std_range_min; typedef boost::(:link - 1 - - 0 - - -51 - - - 2 - :)<struct tag_std_range_max,size_t> std_range_max; typedef boost::(:link - 1 - - 0 - - -51 - - - 2 - :)<struct tag_std_range_index,size_t> std_range_index; template <class T> class my_container { public: size_t size() const; T const & operator[]( size_t i ) const { if( i > size() ) throw boost::(:link - 1 - - 0 - - -72 - - - 2 - :)(std::range_error("Index out of range")) << std_range_min(0) << std_range_max(size()) << std_range_index(i); //.... } }; @] The call to (:link - 1 - - 0 - - -72 - - - 2 - :)<T> gets us an object of ''unspecified type'' which is guaranteed to derive from both boost::(:link - 1 - - 0 - - -50 - - - 2 - :) and T. This makes it possible to use (:link - 1 - - 0 - - -58 - - - 2 - mod="/":) to store additional information in the exception object. The exception can be intercepted as T &, so existing exception handling will not break. It can also be intercepted as boost::(:link - 1 - - 0 - - -50 - - - 2 - :) &, so that (:link - 1 - - 0 - - -38 - - - 2 - |more information can be added to the exception at a later time:). - - - - 0 - - -60 + -59 1 @@ -10119,7 +10040,7 @@ 0 - -61 + -60 11 @@ -10129,7 +10050,7 @@ 0 - -24 + -23 2 @@ -10138,7 +10059,7 @@ 0 - -22 + -21 2 @@ -10147,7 +10068,7 @@ 0 - -14 + -8 2 @@ -10156,7 +10077,7 @@ 0 - -37 + -36 2 @@ -10165,7 +10086,7 @@ 0 - -35 + -34 2 @@ -10175,7 +10096,7 @@ 0 - -62 + -61 7 @@ -10185,7 +10106,7 @@ 0 - -51 + -50 2 @@ -10194,7 +10115,7 @@ 0 - -50 + -49 2 @@ -10203,7 +10124,7 @@ 0 - -10 + -13 2 @@ -10213,7 +10134,7 @@ 0 - -63 + -62 1 @@ -10224,7 +10145,7 @@ 0 - -64 + -63 17 @@ -10234,7 +10155,7 @@ 0 - -42 + -41 2 @@ -10243,7 +10164,7 @@ 0 - -51 + -50 2 @@ -10252,7 +10173,7 @@ 0 - -50 + -49 2 @@ -10261,7 +10182,7 @@ 0 - -51 + -50 2 @@ -10270,7 +10191,7 @@ 0 - -50 + -49 2 @@ -10279,7 +10200,7 @@ 0 - -58 + -57 2 @@ -10288,7 +10209,7 @@ 0 - -33 + -32 2 @@ -10297,7 +10218,7 @@ 0 - -33 + -32 2 @@ -10307,7 +10228,7 @@ 0 - -65 + -64 1 @@ -10318,7 +10239,7 @@ 0 - -66 + -65 5 @@ -10328,7 +10249,7 @@ 0 - -34 + -33 2 @@ -10337,12 +10258,23 @@ 0 - -71 + -70 2 :). + + + 0 + + -66 + + + 1 + 2 + (:auto !!!:) !!!Synopsis (:include synopsis:) + 0 @@ -10352,7 +10284,7 @@ 1 2 - (:auto !!!:) !!!Synopsis (:include synopsis:) + (:auto !!:) !!!Synopsis (:include synopsis:) @@ -10374,24 +10306,13 @@ 1 2 - (:auto !!:) !!!Synopsis (:include synopsis:) - - - - 0 - - -70 - - - 1 - 2 (:auto !!:) (:pagelist tags="macro":) 0 - -71 + -70 39 @@ -10401,7 +10322,7 @@ 0 - -71 + -70 2 @@ -10410,7 +10331,7 @@ 0 - -71 + -70 2 @@ -10419,7 +10340,7 @@ 0 - -43 + -42 2 @@ -10428,7 +10349,7 @@ 0 - -50 + -49 2 @@ -10437,7 +10358,7 @@ 0 - -34 + -33 2 @@ -10446,7 +10367,7 @@ 0 - -34 + -33 2 @@ -10455,7 +10376,7 @@ 0 - -71 + -70 2 @@ -10464,7 +10385,7 @@ 0 - -71 + -70 2 @@ -10473,7 +10394,7 @@ 0 - -9 + -7 2 @@ -10482,7 +10403,7 @@ 0 - -71 + -70 2 @@ -10491,7 +10412,7 @@ 0 - -34 + -33 2 @@ -10500,7 +10421,7 @@ 0 - -66 + -65 2 @@ -10509,7 +10430,7 @@ 0 - -50 + -49 2 @@ -10518,7 +10439,7 @@ 0 - -50 + -49 2 @@ -10527,7 +10448,7 @@ 0 - -50 + -49 2 @@ -10536,7 +10457,7 @@ 0 - -34 + -33 2 @@ -10545,7 +10466,7 @@ 0 - -50 + -49 2 @@ -10554,7 +10475,7 @@ 0 - -33 + -32 2 @@ -10563,7 +10484,7 @@ 0 - -78 + -77 2 @@ -10573,7 +10494,7 @@ 0 - -72 + -71 5 @@ -10583,7 +10504,7 @@ 0 - -50 + -49 2 @@ -10592,7 +10513,7 @@ 0 - -50 + -49 2 @@ -10602,7 +10523,7 @@ 0 - -73 + -72 1 @@ -10613,7 +10534,7 @@ 0 - -74 + -73 15 @@ -10623,7 +10544,7 @@ 0 - -7 + -10 2 @@ -10632,7 +10553,7 @@ 0 - -19 + -18 2 @@ -10641,7 +10562,7 @@ 0 - -50 + -49 2 @@ -10650,7 +10571,7 @@ 0 - -9 + -7 2 @@ -10659,7 +10580,7 @@ 0 - -14 + -8 2 @@ -10668,7 +10589,7 @@ 0 - -9 + -7 2 @@ -10677,7 +10598,7 @@ 0 - -50 + -49 2 @@ -10687,7 +10608,7 @@ 0 - -75 + -74 1 @@ -10698,7 +10619,7 @@ 0 - -76 + -75 5 @@ -10708,7 +10629,7 @@ 0 - -50 + -49 2 @@ -10717,7 +10638,7 @@ 0 - -50 + -49 2 @@ -10727,7 +10648,7 @@ 0 - -77 + -76 1 @@ -10738,7 +10659,7 @@ 0 - -78 + -77 9 @@ -10748,7 +10669,7 @@ 0 - -51 + -50 2 @@ -10757,7 +10678,7 @@ 0 - -71 + -70 2 @@ -10766,7 +10687,7 @@ 0 - -34 + -33 2 @@ -10775,7 +10696,7 @@ 0 - -66 + -65 2 @@ -10785,7 +10706,7 @@ 0 - -79 + -78 11 @@ -10795,7 +10716,7 @@ 0 - -9 + -7 2 @@ -10804,7 +10725,7 @@ 0 - -32 + -31 2 @@ -10813,7 +10734,7 @@ 0 - -50 + -49 2 @@ -10822,7 +10743,7 @@ 0 - -74 + -73 2 @@ -10831,7 +10752,7 @@ 0 - -80 + -79 2 @@ -10841,7 +10762,7 @@ 0 - -80 + -79 37 @@ -10851,7 +10772,7 @@ 0 - -71 + -70 2 @@ -10860,7 +10781,7 @@ 0 - -34 + -33 2 @@ -10869,7 +10790,7 @@ 0 - -77 + -76 2 @@ -10878,7 +10799,7 @@ 0 - -50 + -49 2 @@ -10887,7 +10808,7 @@ 0 - -34 + -33 2 @@ -10896,7 +10817,7 @@ 0 - -34 + -33 2 @@ -10905,7 +10826,7 @@ 0 - -71 + -70 2 @@ -10914,7 +10835,7 @@ 0 - -71 + -70 2 @@ -10923,7 +10844,7 @@ 0 - -46 + -45 2 @@ -10932,7 +10853,7 @@ 0 - -34 + -33 2 @@ -10941,7 +10862,7 @@ 0 - -46 + -45 2 @@ -10950,7 +10871,7 @@ 0 - -71 + -70 2 @@ -10959,7 +10880,7 @@ 0 - -34 + -33 2 @@ -10968,7 +10889,7 @@ 0 - -9 + -7 2 @@ -10977,7 +10898,7 @@ 0 - -34 + -33 2 @@ -10986,7 +10907,7 @@ 0 - -66 + -65 2 @@ -10995,7 +10916,7 @@ 0 - -71 + -70 2 @@ -11004,7 +10925,7 @@ 0 - -46 + -45 2 @@ -11017,13 +10938,13 @@ throws - 85 + 84 reno_layer - 76 + 75 0 @@ -11445,7 +11366,9 @@ -51 - 0 + 1 + 2 + !!!!Throws: Any exception emitted by v's copy constructor. @@ -11454,9 +11377,7 @@ -52 - 1 - 2 - !!!!Throws: Any exception emitted by v's copy constructor. + 0 @@ -11480,7 +11401,7 @@ 0 - -57 + -55 0 @@ -11498,7 +11419,7 @@ 0 - -58 + -57 1 @@ -11509,7 +11430,7 @@ 0 - -59 + -58 0 @@ -11518,7 +11439,7 @@ 0 - -55 + -59 0 @@ -11665,7 +11586,9 @@ -75 - 0 + 1 + 2 + !!!!Throws: std::bad_alloc, or any exception emitted by T1..TN copy constructor. @@ -11674,9 +11597,7 @@ -76 - 1 - 2 - !!!!Throws: std::bad_alloc, or any exception emitted by T1..TN copy constructor. + 0 @@ -11705,15 +11626,6 @@ 0 - - - 0 - - -80 - - - 0 - @@ -11721,13 +11633,13 @@ synopsis - 86 + 85 reno_layer - 76 + 75 0 @@ -11735,9 +11647,18 @@ -5 - 1 + 3 2 - [@namespace boost { (:include api pre_indent="4":) }@] + [@#include < + 1 + + 0 + + -10 + + + 2 + > #include <boost/tuple/tuple.hpp> namespace boost { (:include api pre_indent="4":) }@] @@ -11746,7 +11667,18 @@ -6 - 0 + 3 + 2 + `#include <(:link + 1 + + 0 + + -72 + + + 2 + :)>\\ [@namespace boost { (:include decl pre_indent="4":) }@] @@ -11757,16 +11689,16 @@ 3 2 - [@#include <(:link + `#include < 1 0 - -39 + -30 2 - :)> namespace boost { (:include api pre_indent="4":) }@] + > [@namespace boost { (:include decl pre_indent="4":) }@] @@ -11782,7 +11714,7 @@ 0 - -21 + -18 2 @@ -11791,7 +11723,7 @@ 0 - -21 + -18 2 @@ -11804,18 +11736,9 @@ -9 - 3 + 1 2 - `#include < - 1 - - 0 - - -31 - - - 2 - > [@namespace boost { (:include decl pre_indent="4":) }@] + [@namespace boost { (:include api pre_indent="4":) }@] @@ -11824,7 +11747,18 @@ -10 - 0 + 3 + 2 + [@#include <(:link + 1 + + 0 + + -38 + + + 2 + :)> namespace boost { (:include api pre_indent="4":) }@] @@ -11842,18 +11776,7 @@ -12 - 3 - 2 - `#include <(:link - 1 - - 0 - - -73 - - - 2 - :)>\\ [@namespace boost { (:include decl pre_indent="4":) }@] + 0 @@ -11871,27 +11794,18 @@ -14 - 5 + 3 2 - `#include < + [@#include <(:link 1 0 - -19 + -56 2 - > (:include - 1 - - 0 - - -19 - - - 2 - synopsis:) + :)> namespace boost { template <class> class weak_ptr; (:include api pre_indent="4":) }@] @@ -11909,9 +11823,27 @@ -16 - 1 + 5 2 - (:include api:) + `#include < + 1 + + 0 + + -20 + + + 2 + > (:include + 1 + + 0 + + -20 + + + 2 + synopsis:) @@ -11920,18 +11852,9 @@ -17 - 3 + 1 2 - [@#include <(:link - 1 - - 0 - - -57 - - - 2 - :)> namespace boost { template <class> class weak_ptr; (:include api pre_indent="4":) }@] + (:include api:) @@ -11947,27 +11870,7 @@ 0 - -7 - - - 2 - > #include <boost/tuple/tuple.hpp> namespace boost { (:include api pre_indent="4":) }@] - - - - 0 - - -19 - - - 3 - 2 - [@#include < - 1 - - 0 - - -57 + -56 2 @@ -11977,7 +11880,7 @@ 0 - -20 + -19 0 @@ -11986,7 +11889,7 @@ 0 - -21 + -20 3 @@ -11996,7 +11899,7 @@ 0 - -57 + -56 2 @@ -12006,7 +11909,7 @@ 0 - -22 + -21 5 @@ -12016,7 +11919,7 @@ 0 - -68 + -67 2 @@ -12025,7 +11928,7 @@ 0 - -68 + -67 2 @@ -12035,11 +11938,40 @@ 0 - -23 + -22 0 + + + 0 + + -23 + + + 5 + 2 + `#include <(:link + 1 + + 0 + + -72 + + + 2 + :)>\\ `#include < + 1 + + 0 + + -76 + + + 2 + >\\ [@namespace boost { (:include decl pre_indent="4":) }@] + 0 @@ -12049,41 +11981,12 @@ 5 2 - `#include <(:link - 1 - - 0 - - -73 - - - 2 - :)>\\ `#include < - 1 - - 0 - - -77 - - - 2 - >\\ [@namespace boost { (:include decl pre_indent="4":) }@] - - - - 0 - - -25 - - - 5 - 2 `#include < 1 0 - -53 + -52 2 @@ -12092,7 +11995,7 @@ 0 - -53 + -52 2 @@ -12102,7 +12005,7 @@ 0 - -26 + -25 3 @@ -12112,7 +12015,7 @@ 0 - -57 + -56 2 @@ -12122,7 +12025,7 @@ 0 - -27 + -26 5 @@ -12132,7 +12035,7 @@ 0 - -17 + -14 2 @@ -12141,7 +12044,7 @@ 0 - -17 + -14 2 @@ -12151,7 +12054,7 @@ 0 - -28 + -27 3 @@ -12161,12 +12064,21 @@ 0 - -16 + -17 2 :)> (:include decl:) + + + 0 + + -28 + + + 0 + 0 @@ -12183,7 +12095,18 @@ -30 - 0 + 3 + 2 + [@#include < + 1 + + 0 + + -38 + + + 2 + > namespace boost { (:include api pre_indent="4":) }@] @@ -12194,32 +12117,12 @@ 3 2 - [@#include < - 1 - - 0 - - -39 - - - 2 - > namespace boost { (:include api pre_indent="4":) }@] - - - - 0 - - -32 - - - 3 - 2 `#include <(:link 1 0 - -16 + -17 2 @@ -12229,7 +12132,7 @@ 0 - -33 + -32 1 @@ -12240,7 +12143,7 @@ 0 - -34 + -33 3 @@ -12250,7 +12153,7 @@ 0 - -77 + -76 2 @@ -12260,7 +12163,7 @@ 0 - -35 + -34 5 @@ -12270,7 +12173,7 @@ 0 - -65 + -64 2 @@ -12279,7 +12182,7 @@ 0 - -65 + -64 2 @@ -12289,7 +12192,7 @@ 0 - -36 + -35 3 @@ -12299,7 +12202,7 @@ 0 - -73 + -72 2 @@ -12309,7 +12212,7 @@ 0 - -37 + -36 5 @@ -12319,7 +12222,7 @@ 0 - -75 + -74 2 @@ -12328,7 +12231,7 @@ 0 - -75 + -74 2 @@ -12338,7 +12241,7 @@ 0 - -38 + -37 0 @@ -12347,7 +12250,7 @@ 0 - -39 + -38 1 @@ -12358,7 +12261,7 @@ 0 - -40 + -39 3 @@ -12368,7 +12271,7 @@ 0 - -7 + -10 2 @@ -12378,7 +12281,7 @@ 0 - -41 + -40 0 @@ -12387,7 +12290,7 @@ 0 - -42 + -41 1 @@ -12398,7 +12301,7 @@ 0 - -43 + -42 3 @@ -12408,12 +12311,21 @@ 0 - -77 + -76 2 :)> [@namespace boost { (:include decl pre_indent="4":) }@] + + + 0 + + -43 + + + 0 + 0 @@ -12430,7 +12342,18 @@ -45 - 0 + 3 + 2 + `#include <(:link + 1 + + 0 + + -76 + + + 2 + :)> [@namespace boost { (:include decl pre_indent="4":) }@] @@ -12439,18 +12362,7 @@ -46 - 3 - 2 - `#include <(:link - 1 - - 0 - - -77 - - - 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] + 0 @@ -12468,7 +12380,18 @@ -48 - 0 + 3 + 2 + `#include <(:link + 1 + + 0 + + -10 + + + 2 + :)> [@(:include decl:)@] @@ -12484,11 +12407,11 @@ 0 - -7 + -38 2 - :)> [@(:include decl:)@] + :)> [@namespace boost { (:include def pre_indent="4":) }@] @@ -12504,7 +12427,7 @@ 0 - -39 + -10 2 @@ -12524,27 +12447,7 @@ 0 - -7 - - - 2 - :)> [@namespace boost { (:include def pre_indent="4":) }@] - - - - 0 - - -52 - - - 3 - 2 - `#include <(:link - 1 - - 0 - - -7 + -10 2 @@ -12554,7 +12457,7 @@ 0 - -53 + -52 5 @@ -12564,7 +12467,7 @@ 0 - -57 + -56 2 @@ -12573,12 +12476,21 @@ 0 - -34 + -33 2 decl pre_indent="4":) (:include api pre_indent="4":) }@] + + + 0 + + -53 + + + 0 + 0 @@ -12588,55 +12500,6 @@ 0 - - - 0 - - -57 - - - 1 - 2 - [@namespace boost { (:include api pre_indent="4":) }@] - - - - 0 - - -56 - - - 0 - - - - 0 - - -58 - - - 3 - 2 - `#include <(:link - 1 - - 0 - - -7 - - - 2 - :)>\\ [@namespace boost { (:include decl pre_indent="4":) }@] - - - - 0 - - -59 - - - 0 - 0 @@ -12650,7 +12513,47 @@ 0 - -60 + -56 + + + 1 + 2 + [@namespace boost { (:include api pre_indent="4":) }@] + + + + 0 + + -57 + + + 3 + 2 + `#include <(:link + 1 + + 0 + + -10 + + + 2 + :)>\\ [@namespace boost { (:include decl pre_indent="4":) }@] + + + + 0 + + -58 + + + 0 + + + + 0 + + -59 3 @@ -12660,7 +12563,7 @@ 0 - -5 + -9 2 @@ -12670,7 +12573,7 @@ 0 - -61 + -60 0 @@ -12679,7 +12582,7 @@ 0 - -62 + -61 5 @@ -12689,7 +12592,7 @@ 0 - -26 + -25 2 @@ -12698,12 +12601,21 @@ 0 - -26 + -25 2 synopsis:) + + + 0 + + -62 + + + 0 + 0 @@ -12720,7 +12632,18 @@ -64 - 0 + 3 + 2 + [@#include < + 1 + + 0 + + -56 + + + 2 + > #include <string> namespace boost { (:include api pre_indent="4":) }@] @@ -12731,16 +12654,16 @@ 3 2 - [@#include < + `#include <(:link 1 0 - -57 + -76 2 - > #include <string> namespace boost { (:include api pre_indent="4":) }@] + :)> [@namespace boost { (:include decl pre_indent="4":) }@] @@ -12751,16 +12674,16 @@ 3 2 - `#include <(:link + [@#include < 1 0 - -77 + -38 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] + > namespace boost { (:include api pre_indent="4":) }@] @@ -12771,32 +12694,12 @@ 3 2 - [@#include < - 1 - - 0 - - -39 - - - 2 - > namespace boost { (:include api pre_indent="4":) }@] - - - - 0 - - -68 - - - 3 - 2 [@#include <(:link 1 0 - -57 + -56 2 @@ -12806,7 +12709,7 @@ 0 - -69 + -68 1 @@ -12817,11 +12720,31 @@ 0 - -70 + -69 0 + + + 0 + + -70 + + + 3 + 2 + `#include <(:link + 1 + + 0 + + -76 + + + 2 + :)> [@namespace boost { (:include decl pre_indent="4":) }@] + 0 @@ -12831,16 +12754,16 @@ 3 2 - `#include <(:link + `#include < 1 0 - -77 + -66 2 - :)> [@namespace boost { (:include decl pre_indent="4":) }@] + > [@namespace boost { (:include decl pre_indent="4":) }@] @@ -12851,32 +12774,12 @@ 3 2 - `#include < - 1 - - 0 - - -67 - - - 2 - > [@namespace boost { (:include decl pre_indent="4":) }@] - - - - 0 - - -73 - - - 3 - 2 [@#include <string> namespace boost { (:include 1 0 - -50 + -49 2 @@ -12886,7 +12789,7 @@ 0 - -74 + -73 0 @@ -12895,7 +12798,7 @@ 0 - -75 + -74 3 @@ -12905,7 +12808,7 @@ 0 - -57 + -56 2 @@ -12915,7 +12818,7 @@ 0 - -76 + -75 5 @@ -12925,7 +12828,7 @@ 0 - -18 + -5 2 @@ -12934,7 +12837,7 @@ 0 - -76 + -75 2 @@ -12944,7 +12847,7 @@ 0 - -77 + -76 3 @@ -12954,7 +12857,7 @@ 0 - -39 + -38 2 @@ -12964,7 +12867,7 @@ 0 - -78 + -77 3 @@ -12974,7 +12877,7 @@ 0 - -77 + -76 2 @@ -12984,7 +12887,7 @@ 0 - -79 + -78 0 @@ -12993,7 +12896,7 @@ 0 - -80 + -79 0 @@ -13008,14 +12911,14 @@ - 87 + 86 reno_context_map - 76 + 75 -5 @@ -13167,20 +13070,20 @@ -54 - -57 + -55 -56 + + -57 + -58 -59 - - -55 - -60 @@ -13241,14 +13144,11 @@ -79 - - -80 - - 76 + 75 @@ -13261,7 +13161,7 @@ - -23 + -22 @@ -13276,7 +13176,7 @@ - -79 + -78 @@ -13291,7 +13191,7 @@ - -38 + -37 @@ -13306,7 +13206,7 @@ - -63 + -62 @@ -13321,97 +13221,7 @@ - -67 - - - - - - 0 - - - - - 1 - - - - -31 - - - - - - 0 - - - - - 1 - - - - -54 - - - - - - 0 - - - - - 1 - - - - -47 - - - - - - 0 - - - - - 1 - - - - -13 - - - - - - 0 - - - - - 1 - - - - -56 - - - - - - 0 - - - - - 1 - - - - -41 + -66 @@ -13441,7 +13251,7 @@ - -11 + -53 @@ -13456,7 +13266,7 @@ - -70 + -46 @@ -13471,7 +13281,119 @@ - -44 + -12 + + + + + + 0 + + + + + 1 + + + + -55 + + + + + + 0 + + + + + 1 + + + + -40 + + + + + + 0 + + + + + 1 + + + + -29 + + + + + + 0 + + + + + 1 + + + + -15 + + + + + + 0 + + + + + 1 + + + + -69 + + + + + + 0 + + + + + 1 + + + + -43 + + + + + + 1 + 422CF2A57EA6763FBD2F319C4CDD8DD5ADF4493C699B50653015A362F71D4500 + 1282485161 + 2161 + 321 + + + + + 0 + ../../../../boost/exception/info_tuple.hpp + 0 + 0 + + + + -5 @@ -13493,7 +13415,7 @@ - -53 + -52 @@ -13519,7 +13441,7 @@ - -25 + -24 @@ -13541,7 +13463,7 @@ - -75 + -74 @@ -13567,7 +13489,85 @@ - -35 + -34 + + + + + + 1 + 3B52D5850D9664639CCF1D22FBD52F2EB99087BED704C3FE07FE185B38C0DD09 + 676740550 + 15108 + 321 + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -76 + + + + + + 2 + 2F10A76F9BA78353597A5E6F1373E8188DE7AEFDCE29BFD0105527B64B37D00E + 1041541496 + 4693 + 1606 + 20B46D7510ED9F1F40CF3A80C97AE430628745D26173DE91E3D6CB6CEABDAA58 + 2572596214 + 659 + 4028 + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + -6 + + + + + + 3 + 2F10A76F9BA78353597A5E6F1373E8188DE7AEFDCE29BFD0105527B64B37D00E + 1041541496 + 4693 + 1606 + 4FDA7B607488BB202B2AB72C17983031070085FB6B616F2B77320088BE08EB62 + 98930276 + 3714 + 26 + 28B2A7701322B20C8CF5D6074F9019FBEA2FB02F1A13E83632AA76C431798777 + 1206384617 + 3087 + 628 + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + -23 @@ -13589,7 +13589,7 @@ - -68 + -67 @@ -13611,7 +13611,7 @@ - -80 + -79 @@ -13637,7 +13637,7 @@ - -8 + -16 @@ -13647,7 +13647,7 @@ 4D7009F0868C1DF4898EC6ECF9AD2CFEA98E8653B01B066106761807405D4C22 1416707852 3107 - 527 + 543 @@ -13659,7 +13659,7 @@ - -69 + -68 @@ -13669,7 +13669,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 @@ -13681,7 +13681,7 @@ - -39 + -38 @@ -13691,7 +13691,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 E0D734FE11CFB52F1BBF35C31E84A098AC93881DEE300CDBE3F9B772F75D9B2F 4056200131 2307 @@ -13711,7 +13711,7 @@ - -59 + -58 @@ -13721,7 +13721,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 E0D734FE11CFB52F1BBF35C31E84A098AC93881DEE300CDBE3F9B772F75D9B2F 4056200131 2307 @@ -13741,7 +13741,7 @@ - -50 + -49 @@ -13751,7 +13751,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 17E691632123EB67BA67D590B49EB8094F462F5A10A66A1C5438E1867EF1478E 765399792 77 @@ -13767,7 +13767,7 @@ - -29 + -28 @@ -13777,7 +13777,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 DF9EA87B0140AACF4422F1B76F6A6A409C15F32858BBBA85A35981A824C56BA9 1137981799 192 @@ -13793,7 +13793,7 @@ - -9 + -7 @@ -13803,7 +13803,7 @@ EFEF19E7D10F02079DA9799E42DA1415CA0C815E964E88CF1A8896D49C81EC22 2916767056 11964 - 527 + 543 F3FB15CD82336271C6E875BC620385322777D16F0B7C233300783CE35710CCBF 3292878997 282 @@ -13819,7 +13819,7 @@ - -72 + -71 @@ -13841,51 +13841,51 @@ - -74 + -73 1 - 3624A015B5382483F083885049F332C46D6BA3DCA364E89B298F592BDC3E8632 - 3335511542 - 5611 - 321 + F971041F60D19AFB8AA50440BC2A911633E5826FDED7B3E1CFC90D241D880C32 + 931174095 + 3062 + 95 0 - ../../../../boost/exception/info.hpp + ../../../../boost/throw_exception.hpp 0 0 - -7 + -17 1 - FCAB376A7BB77331C1D5DF08FF08A05BAB40B43F12C0A4B9B2A8253131D7B333 - 3011653711 - 15066 + 979343A73CAA7601AF159E6240A03038F47940F71F6DE85D6BA648B179921C35 + 2321681356 + 939 321 0 - ../../../../boost/exception/detail/exception_ptr.hpp + ../../../../boost/exception/errinfo_errno.hpp 0 0 - -77 + -18 @@ -13895,7 +13895,7 @@ BF7B46FEFA4E2DED7D652BFD40E94DD0B225ADA8D35E28FF4216F72812589835 422843600 756 - 527 + 543 @@ -13907,7 +13907,7 @@ - -42 + -41 @@ -13917,7 +13917,7 @@ 6FB85B536F965F137409D5B5D34786DCBF0B9957A7C251D271B717A1156B823D 1090406464 362 - 527 + 543 D16DAEA8B1792A019AF7FCA362FDC6EFD381AF4C43C076A01C029ECE51F994A6 3172941848 330 @@ -13933,7 +13933,7 @@ - -60 + -59 @@ -13955,7 +13955,7 @@ - -61 + -60 @@ -13965,7 +13965,7 @@ FD7792C2929DD7B6BD613636FD0C574D002286E33811BA109B57B9C4D790D340 1830643656 1244 - 1777 + 1793 BAE73EEDFF4059A7561888B4BA054DFA033F0967727630270F2C0D4EB918B88D 3168166030 1222 @@ -13981,51 +13981,7 @@ - -32 - - - - - - 1 - D7D9E02C29CF870CB25421CA2213D6119D5133CA727F19441CF322D1EA494945 - 693577231 - 5891 - 321 - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - -73 - - - - - - 1 - 195FF369BA559E3C0080F75321794B4808B6A278D4DEF8AEDBD9FCEBCE69C548 - 458631219 - 2145 - 321 - - - - - 0 - ../../../../boost/exception/info_tuple.hpp - 0 - 0 - - - - -18 + -31 @@ -14051,7 +14007,7 @@ - -27 + -26 @@ -14073,93 +14029,33 @@ - -48 + -47 2 - 848BC9161A49BA440F51BAB9C6CCED5C93500327C8741BF5EFA9831C9D690F51 - 2291535325 - 1060 - 548 - 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C - 2825495330 - 622 - 432 + 8A8FAA48FF123031D5E51D50BC96D0AAC468112838058976B85AC6EED4A25C57 + 4201574956 + 763 + 833 + AEA5C07CF015DDE792E061003F669239E7AADBD24BE554EB26706AD9B28B8C89 + 2503775994 + 472 + 285 0 - ../../../../boost/exception/detail/error_info_impl.hpp + ../../../../boost/exception/diagnostic_information.hpp 0 0 - -51 - - - - - - 3 - 848BC9161A49BA440F51BAB9C6CCED5C93500327C8741BF5EFA9831C9D690F51 - 2291535325 - 1060 - 548 - 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C - 2825495330 - 622 - 432 - 38B566F2C6678B8724D18086A6F76E077DC2ADC1BB69A4B83BF0A2C3B7D31B50 - 2218658069 - 31 - 143 - - - - - 0 - ../../../../boost/exception/detail/error_info_impl.hpp - 0 - 0 - - - - -40 - - - - - - 3 - 848BC9161A49BA440F51BAB9C6CCED5C93500327C8741BF5EFA9831C9D690F51 - 2291535325 - 1060 - 548 - 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C - 2825495330 - 622 - 432 - 98B33BE76679E3A4831241335CD5DFF6F634429F36BABF96C1D4DC2296C5ECC5 - 1584672077 - 208 - 259 - - - - - 0 - ../../../../boost/exception/detail/error_info_impl.hpp - 0 - 0 - - - - -49 + -35 @@ -14181,7 +14077,7 @@ - -6 + -11 @@ -14203,63 +14099,7 @@ - -21 - - - - - - 2 - EFBD8063574E7D463C8E08D9AA1D68CFCE4630C445B20156AC7591F46AB48260 - 2082877988 - 5081 - 751 - 6E325144EF4F41FA3A225EB30729101382C4E99B3D6160E307311E4B4E641010 - 1097215175 - 161 - 240 - - - - - 0 - ../../../../boost/exception/info.hpp - 0 - 0 - - - - -52 - - - - - - 3 - EFBD8063574E7D463C8E08D9AA1D68CFCE4630C445B20156AC7591F46AB48260 - 2082877988 - 5081 - 751 - 2C6C9E29E4E23E6C1F5876C33741FB18A63E703410F3CD61ACB348866B7B02B8 - 3516588960 - 3918 - 884 - 38AA79D330846BE1CF17285796F34A9DBB5A7E995963A55F9B46EB1DA6314610 - 542483318 - 573 - 3130 - - - - - 0 - ../../../../boost/exception/info.hpp - 0 - 0 - - - - -58 + -20 @@ -14269,7 +14109,7 @@ 21027A2B73C9AA6FF083752A952D63BBA9B5FD68A3C8915965A7184EA62A5D61 1523356166 537 - 607 + 623 24256E1CE56594FB38D0630858B8947191827CFC57771E8727A6A56F76207454 665917505 66 @@ -14285,7 +14125,171 @@ - -14 + -8 + + + + + + 3 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 + 2482DDAF6A7E31CF75E93B993C86D9814A0B8899B68E555B23D411BD195FE270 + 1574307697 + 8349 + 4068 + 7E162EB263369C2C485D5F69CA1A4FADD3EEBC6EB78CE7A767A8615885178079 + 1179386730 + 5404 + 2935 + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -70 + + + + + + 2 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 + EEDBDE62A278D2AF428D9D1ED2ABCFF06163BACD91E12DD033565C7043354B89 + 246173488 + 248 + 1396 + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -77 + + + + + + 2 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 + 1D5E771272B020A105B69E186517499873571F62AFF9D48F130C952CFAA12FA3 + 2841506107 + 891 + 173 + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -33 + + + + + + 3 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 + 97DB2EDAA38019314BA1A582664F8950F5208310F14BAB94E1880AE2C5F00CD4 + 3076716310 + 959 + 2974 + 1760DA943E0DCAE6DDB000F3C08D6E6F5F8AEDBBEAC7CAA84A2ED60BFA4B0E1A + 702729709 + 815 + 145 + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -65 + + + + + + 2 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 + 0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4 + 2078296250 + 305 + 1066 + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -42 + + + + + + 2 + ADCD0B47BEBAA82DE5FDCACB0E9E8FF900527566EF9865ECD8C08B62067B4C66 + 1181168733 + 14302 + 1027 + 10E31FFA267B250065A2630D0B7107862920D940AEA0A5499D5341A902AE01FF + 1524325002 + 368 + 13033 + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -45 @@ -14311,7 +14315,7 @@ - -22 + -21 @@ -14333,63 +14337,7 @@ - -20 - - - - - - 2 - AE2244409B3C13F5DB1F6CB575F9433471C6D7D034612E4F4632E13AED32F66D - 869104984 - 4554 - 1558 - 31DAA7256398978790606A24D0BDC208490B1C7F69B7C57D7AC9FF429F789AC8 - 405252553 - 632 - 3916 - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - -12 - - - - - - 3 - AE2244409B3C13F5DB1F6CB575F9433471C6D7D034612E4F4632E13AED32F66D - 869104984 - 4554 - 1558 - DE799A1987BE19AADE2CACAE91B3E49F7D19C6915CBA23E74B2B3BEA724E25E0 - 3304879774 - 3629 - 26 - A1E48DF6BBE92549200BD573D0A32B4D206A7CD1F14928B4CB64A8C6A6DA0492 - 1687543439 - 2991 - 628 - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - -24 + -19 @@ -14411,7 +14359,7 @@ - -26 + -25 @@ -14437,7 +14385,7 @@ - -62 + -61 @@ -14459,215 +14407,115 @@ - -17 - - - - - - 3 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 - 2482DDAF6A7E31CF75E93B993C86D9814A0B8899B68E555B23D411BD195FE270 - 1574307697 - 8349 - 4068 - 7E162EB263369C2C485D5F69CA1A4FADD3EEBC6EB78CE7A767A8615885178079 - 1179386730 - 5404 - 2935 - - - - - 0 - ../../../../boost/exception/detail/exception_ptr.hpp - 0 - 0 - - - - -71 - - - - - - 2 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 - EEDBDE62A278D2AF428D9D1ED2ABCFF06163BACD91E12DD033565C7043354B89 - 246173488 - 248 - 1396 - - - - - 0 - ../../../../boost/exception/detail/exception_ptr.hpp - 0 - 0 - - - - -78 - - - - - - 2 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 - 1D5E771272B020A105B69E186517499873571F62AFF9D48F130C952CFAA12FA3 - 2841506107 - 891 - 173 - - - - - 0 - ../../../../boost/exception/detail/exception_ptr.hpp - 0 - 0 - - - - -34 - - - - - - 3 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 - 97DB2EDAA38019314BA1A582664F8950F5208310F14BAB94E1880AE2C5F00CD4 - 3076716310 - 959 - 2974 - 1760DA943E0DCAE6DDB000F3C08D6E6F5F8AEDBBEAC7CAA84A2ED60BFA4B0E1A - 702729709 - 815 - 145 - - - - - 0 - ../../../../boost/exception/detail/exception_ptr.hpp - 0 - 0 - - - - -66 - - - - - - 2 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 - 0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4 - 2078296250 - 305 - 1066 - - - - - 0 - ../../../../boost/exception/detail/exception_ptr.hpp - 0 - 0 - - - - -43 - - - - - - 2 - ABF06C946BB6C9EDF3D0AFF183E9BE47F78714B7955E0E8FC8252F1B4DA00B7E - 2288396892 - 14276 - 1011 - 10E31FFA267B250065A2630D0B7107862920D940AEA0A5499D5341A902AE01FF - 1524325002 - 368 - 13033 - - - - - 0 - ../../../../boost/exception/detail/exception_ptr.hpp - 0 - 0 - - - - -46 + -14 1 - ED900027EBB3DB2981FE95FF6D9F2EC9978245672634315A2D7CA944095A1B87 - 3625423705 - 3046 - 95 - - - - - 0 - ../../../../boost/throw_exception.hpp - 0 - 0 - - - - -16 - - - - - - 1 - A7E1DE1220FF43715F94884D78D93FF18042E0BDE9BA9ACBD8C3138D437AE28C - 3733653590 - 923 + 56C5A51DE37A6E893DA3B25D69DB65E4593C7803C6E34112E1F95C93D6037A82 + 275305396 + 5586 321 0 - ../../../../boost/exception/errinfo_errno.hpp + ../../../../boost/exception/info.hpp 0 0 - -19 + -10 + + + + + + 2 + 9516640DF38FC07A649AA4CAF21D4C4A6D6C2DF2B00E608F8D1C653C8D85E58B + 406646287 + 956 + 564 + 8F508F9E7187AEA0E35A268B6F7B8E8A6C6588CCA01A2F3C5BBF1010699D8270 + 1555404133 + 578 + 372 + + + + + 0 + ../../../../boost/exception/detail/error_info_impl.hpp + 0 + 0 + + + + -50 + + + + + + 3 + 9516640DF38FC07A649AA4CAF21D4C4A6D6C2DF2B00E608F8D1C653C8D85E58B + 406646287 + 956 + 564 + 8F508F9E7187AEA0E35A268B6F7B8E8A6C6588CCA01A2F3C5BBF1010699D8270 + 1555404133 + 578 + 372 + 38B566F2C6678B8724D18086A6F76E077DC2ADC1BB69A4B83BF0A2C3B7D31B50 + 2218658069 + 31 + 143 + + + + + 0 + ../../../../boost/exception/detail/error_info_impl.hpp + 0 + 0 + + + + -39 + + + + + + 3 + 9516640DF38FC07A649AA4CAF21D4C4A6D6C2DF2B00E608F8D1C653C8D85E58B + 406646287 + 956 + 564 + 8F508F9E7187AEA0E35A268B6F7B8E8A6C6588CCA01A2F3C5BBF1010699D8270 + 1555404133 + 578 + 372 + 98B33BE76679E3A4831241335CD5DFF6F634429F36BABF96C1D4DC2296C5ECC5 + 1584672077 + 208 + 259 + + + + + 0 + ../../../../boost/exception/detail/error_info_impl.hpp + 0 + 0 + + + + -48 @@ -14677,7 +14525,7 @@ 8A5444CF9C854740F83F17EA2075478A983F7C0243DCE4E42551ECBF908C1392 4193409281 322 - 976 + 992 @@ -14689,7 +14537,29 @@ - -45 + -44 + + + + + + 1 + F2E44174DE588C19C0172D82AD61322E6B6578ADBE2A631C6C8059CB84396D97 + 670214046 + 684 + 321 + + + + + 0 + ../../../../boost/exception/current_exception_cast.hpp + 0 + 0 + + + + -9 @@ -14699,7 +14569,7 @@ 197F3960CFF5CBDEF7BDA8D0DE60948A5328F229C6710FEDE656530A3116B29B 742102996 475 - 1300 + 1316 @@ -14711,7 +14581,7 @@ - -28 + -27 @@ -14721,7 +14591,7 @@ D58AD357499A5A09FB5D12397CFFC2FFD412AC8A307ABB59C9BC53ACCA3B959D 2209414553 2926 - 708 + 724 49F40FF20D66B205C908A8F10BC61DE1BC571E4917A5BD0B4115E3F7FE3923FA 638776689 2894 @@ -14737,7 +14607,7 @@ - -33 + -32 @@ -14759,7 +14629,7 @@ - -65 + -64 @@ -14781,29 +14651,7 @@ - -64 - - - - - - 1 - A1E3F9582095C930245FF6DBA455C6C973F4F025AD6C1D0C3BC7E9494070BAA7 - 293414988 - 113 - 323 - - - - - 0 - ../../../../boost/exception.hpp - 0 - 0 - - - - -15 + -63 @@ -14825,29 +14673,29 @@ - -10 + -13 1 - DAC5C6D096B50EDCF8143E4922FC79D2E46FEA2FCD47EAD71D6392C1D8100DB3 - 4003832872 - 668 + 0CA48A4674CA9C409FF164D9A1B261FB48B0916C0EA387DF2F00DC4637E769BD + 348807582 + 6078 321 0 - ../../../../boost/exception/current_exception_cast.hpp + ../../../../boost/exception/diagnostic_information.hpp 0 0 - -5 + -72 @@ -14857,7 +14705,7 @@ 1B4417301AE3C0338C22E6D497391F51ABD459E521E7DFCE59A6EEC1372D33C2 202224383 1766 - 600 + 616 E0A17503B42EE12F31548A7D20F89916D734CE88B30A1BF6F9FC2D1F83A8B6F4 3410340567 1734 @@ -14873,7 +14721,7 @@ - -76 + -75 @@ -14899,7 +14747,7 @@ - -37 + -36 @@ -14921,7 +14769,63 @@ - -55 + -54 + + + + + + 2 + C6DDF7D02A058403B7BD295CF1561F167D92B7DA1DAC4EBE9F801955264180EB + 1656366188 + 5040 + 767 + 6E325144EF4F41FA3A225EB30729101382C4E99B3D6160E307311E4B4E641010 + 1097215175 + 161 + 422 + + + + + 0 + ../../../../boost/exception/info.hpp + 0 + 0 + + + + -51 + + + + + + 3 + C6DDF7D02A058403B7BD295CF1561F167D92B7DA1DAC4EBE9F801955264180EB + 1656366188 + 5040 + 767 + 507B2DA4184DD6A38FC6099F6454CDC96604C0C7B2C06A2955C78452F66526F8 + 457758605 + 3872 + 889 + 38AA79D330846BE1CF17285796F34A9DBB5A7E995963A55F9B46EB1DA6314610 + 542483318 + 573 + 3084 + + + + + 0 + ../../../../boost/exception/info.hpp + 0 + 0 + + + + -57 @@ -14947,33 +14851,7 @@ - -57 - - - - - - 2 - 964F6A1CDF157430B6F65ABDD6A590CFA6AE83EAED66B5B59BA829DB07DF97F2 - 3653363251 - 731 - 817 - 36688510914673386A7870D1D4970B7D74CF9A4B7226F9E225A5607DCBFB12C4 - 2314308857 - 446 - 279 - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - -36 + -56 @@ -14983,14 +14861,14 @@ - 88 + 87 tag_index - 57 + 56 1 @@ -15013,7 +14891,7 @@ -6 - diagnostic_information tutorial + free function @@ -15022,7 +14900,7 @@ -7 - + exception_ptr free function @@ -15040,34 +14918,25 @@ -9 - exception_ptr free function + 0 - -12 + -10 - free function + 0 - -14 + -11 - error_info_instance noalso type - - - - 0 - - -15 - - - noindex + diagnostic_information tutorial @@ -15076,13 +14945,13 @@ -16 - + error_info_instance noalso type 0 - -18 + -17 @@ -15091,7 +14960,7 @@ 0 - -20 + -19 noalso noindex tutorial @@ -15100,7 +14969,7 @@ 0 - -22 + -21 error_info_instance noalso type @@ -15109,7 +14978,7 @@ 0 - -23 + -22 noindex @@ -15118,7 +14987,7 @@ 0 - -24 + -23 diagnostic_information free function @@ -15127,7 +14996,16 @@ 0 - -25 + -24 + + + error_info_instance noalso type + + + + 0 + + -26 error_info_instance noalso type @@ -15139,7 +15017,7 @@ -27 - error_info_instance noalso type + macro @@ -15148,22 +15026,13 @@ -28 - macro - - - - 0 - - -29 - - function 0 - -31 + -30 exception_ptr @@ -15172,7 +15041,7 @@ 0 - -32 + -31 free function @@ -15181,7 +15050,7 @@ 0 - -33 + -32 error_info free function @@ -15190,11 +15059,20 @@ 0 - -34 + -33 type + + + 0 + + -34 + + + error_info_instance noalso type + 0 @@ -15202,7 +15080,7 @@ -35 - error_info_instance noalso type + function @@ -15211,7 +15089,7 @@ -36 - function + error_info_instance noalso type @@ -15220,7 +15098,7 @@ -37 - error_info_instance noalso type + tutorial @@ -15229,7 +15107,7 @@ -38 - tutorial + @@ -15238,22 +15116,22 @@ -39 - - - - - 0 - - -40 - - type 0 - -43 + -42 + + + exception_ptr free function + + + + 0 + + -45 exception_ptr free function @@ -15265,7 +15143,7 @@ -46 - exception_ptr free function + tutorial @@ -15274,7 +15152,7 @@ -47 - tutorial + noalso noindex tutorial @@ -15283,7 +15161,7 @@ -48 - noalso noindex tutorial + function member @@ -15292,7 +15170,7 @@ -49 - function member + type @@ -15310,22 +15188,22 @@ -51 - type - - - - 0 - - -52 - - function member 0 - -57 + -54 + + + tutorial + + + + 0 + + -56 @@ -15334,11 +15212,20 @@ 0 - -58 + -57 error_info free function + + + 0 + + -58 + + + function + 0 @@ -15352,25 +15239,7 @@ 0 - -55 - - - tutorial - - - - 0 - - -60 - - - function - - - - 0 - - -62 + -61 error_info_instance noalso type @@ -15379,7 +15248,7 @@ 0 - -63 + -62 @@ -15388,7 +15257,7 @@ 0 - -64 + -63 noalso noindex tutorial @@ -15397,7 +15266,7 @@ 0 - -66 + -65 exception_ptr type @@ -15406,7 +15275,7 @@ 0 - -67 + -66 error_info @@ -15415,7 +15284,7 @@ 0 - -69 + -68 error_info @@ -15424,7 +15293,7 @@ 0 - -71 + -70 exception_ptr free function @@ -15433,11 +15302,20 @@ 0 - -72 + -71 error_info free function + + + 0 + + -72 + + + + 0 @@ -15445,22 +15323,13 @@ -73 - - - - - 0 - - -74 - - noindex tutorial 0 - -76 + -75 error_info free function @@ -15469,7 +15338,7 @@ 0 - -77 + -76 @@ -15478,7 +15347,7 @@ 0 - -78 + -77 type @@ -15487,7 +15356,7 @@ 0 - -79 + -78 tutorial @@ -15496,7 +15365,7 @@ 0 - -80 + -79 noindex tutorial diff --git a/doc/synopsis.html b/doc/synopsis.html index 207ca78..95d12db 100644 --- a/doc/synopsis.html +++ b/doc/synopsis.html @@ -103,11 +103,11 @@ boost class exception; template <class E> - std::string diagnostic_information( E const & e ); + std::string diagnostic_information( E const & e, bool verbose=true ); - std::string diagnostic_information( exception_ptr const & p ); + std::string diagnostic_information( exception_ptr const & p, bool verbose=true ); - char const * diagnostic_information_what( boost::exception const & e ) throw(); + char const * diagnostic_information_what( boost::exception const & e, bool verbose=true ) throw(); std::string current_exception_diagnostic_information(); } diff --git a/include/boost/exception/detail/error_info_impl.hpp b/include/boost/exception/detail/error_info_impl.hpp index 8191a9f..12e601b 100644 --- a/include/boost/exception/detail/error_info_impl.hpp +++ b/include/boost/exception/detail/error_info_impl.hpp @@ -25,8 +25,7 @@ boost { public: - virtual std::string tag_typeid_name() const = 0; - virtual std::string value_as_string() const = 0; + virtual std::string name_value_string() const = 0; protected: @@ -63,8 +62,7 @@ boost private: - std::string tag_typeid_name() const; - std::string value_as_string() const; + std::string name_value_string() const; value_type value_; }; diff --git a/include/boost/exception/detail/exception_ptr.hpp b/include/boost/exception/detail/exception_ptr.hpp index 3ab150e..b2ee365 100644 --- a/include/boost/exception/detail/exception_ptr.hpp +++ b/include/boost/exception/detail/exception_ptr.hpp @@ -467,7 +467,7 @@ boost inline std::string - diagnostic_information( exception_ptr const & p ) + diagnostic_information( exception_ptr const & p, bool verbose=true ) { if( p ) try @@ -477,7 +477,7 @@ boost catch( ... ) { - return current_exception_diagnostic_information(); + return current_exception_diagnostic_information(verbose); } return ""; } diff --git a/include/boost/exception/diagnostic_information.hpp b/include/boost/exception/diagnostic_information.hpp index 31089f5..5ac8c6b 100644 --- a/include/boost/exception/diagnostic_information.hpp +++ b/include/boost/exception/diagnostic_information.hpp @@ -31,17 +31,17 @@ boost namespace exception_detail { - std::string diagnostic_information_impl( boost::exception const *, std::exception const *, bool ); + std::string diagnostic_information_impl( boost::exception const *, std::exception const *, bool, bool ); } inline std::string - current_exception_diagnostic_information() + current_exception_diagnostic_information( bool verbose=true) { boost::exception const * be=current_exception_cast(); std::exception const * se=current_exception_cast(); if( be || se ) - return exception_detail::diagnostic_information_impl(be,se,true); + return exception_detail::diagnostic_information_impl(be,se,true,verbose); else return "No diagnostic information available."; } @@ -107,7 +107,7 @@ boost inline std::string - diagnostic_information_impl( boost::exception const * be, std::exception const * se, bool with_what ) + diagnostic_information_impl( boost::exception const * be, std::exception const * se, bool with_what, bool verbose ) { if( !be && !se ) return "Unknown exception."; @@ -125,7 +125,7 @@ boost return wh; } std::ostringstream tmp; - if( be ) + if( be && verbose ) { char const * const * f=get_error_info(*be); int const * l=get_error_info(*be); @@ -149,36 +149,37 @@ boost } } #ifndef BOOST_NO_RTTI - tmp << std::string("Dynamic exception type: ") << - units::detail::demangle((be?(BOOST_EXCEPTION_DYNAMIC_TYPEID(*be)):(BOOST_EXCEPTION_DYNAMIC_TYPEID(*se))).type_->name()) << '\n'; + if ( verbose ) + tmp << std::string("Dynamic exception type: ") << + units::detail::demangle((be?(BOOST_EXCEPTION_DYNAMIC_TYPEID(*be)):(BOOST_EXCEPTION_DYNAMIC_TYPEID(*se))).type_->name()) << '\n'; #endif - if( with_what && se ) + if( with_what && se && verbose ) tmp << "std::exception::what: " << wh << '\n'; if( be ) if( char const * s=exception_detail::get_diagnostic_information(*be,tmp.str().c_str()) ) if( *s ) - return s; + return std::string(s); return tmp.str(); } } template std::string - diagnostic_information( T const & e ) + diagnostic_information( T const & e, bool verbose=true ) { - return exception_detail::diagnostic_information_impl(exception_detail::get_boost_exception(&e),exception_detail::get_std_exception(&e),true); + return exception_detail::diagnostic_information_impl(exception_detail::get_boost_exception(&e),exception_detail::get_std_exception(&e),true,verbose); } inline char const * - diagnostic_information_what( exception const & e ) throw() + diagnostic_information_what( exception const & e, bool verbose=true ) throw() { char const * w=0; #ifndef BOOST_NO_EXCEPTIONS try { #endif - (void) exception_detail::diagnostic_information_impl(&e,0,false); + (void) exception_detail::diagnostic_information_impl(&e,0,false,verbose); if( char const * di=exception_detail::get_diagnostic_information(e,0) ) return di; else diff --git a/include/boost/exception/info.hpp b/include/boost/exception/info.hpp index 3f4f8fa..762a950 100644 --- a/include/boost/exception/info.hpp +++ b/include/boost/exception/info.hpp @@ -24,10 +24,18 @@ boost { template inline - typename enable_if,std::string>::type + std::string + error_info_name( error_info const & x ) + { + return tag_type_name(); + } + + template + inline + std::string to_string( error_info const & x ) { - return to_string(x.value()); + return '[' + error_info_name(x) + "] = " + to_string_stub(x.value()) + '\n'; } template @@ -49,16 +57,7 @@ boost inline std::string error_info:: - tag_typeid_name() const - { - return tag_type_name(); - } - - template - inline - std::string - error_info:: - value_as_string() const + name_value_string() const { return to_string_stub(*this); } @@ -114,7 +113,7 @@ boost for( error_info_map::const_iterator i=info_.begin(),end=info_.end(); i!=end; ++i ) { error_info_base const & x = *i->second; - tmp << '[' << x.tag_typeid_name() << "] = " << x.value_as_string() << '\n'; + tmp << x.name_value_string(); } tmp.str().swap(diagnostic_info_str_); } diff --git a/test/diagnostic_information_test.cpp b/test/diagnostic_information_test.cpp index 85e8a67..05ec554 100644 --- a/test/diagnostic_information_test.cpp +++ b/test/diagnostic_information_test.cpp @@ -19,10 +19,7 @@ typedef boost::error_info tagged_int2; std::string to_string( tagged_int2 const & x ) { - if( x.value()==42 ) - return "fourty-two"; - else - return "bad value"; + return '[' +boost::error_info_name(x) + "] = " + (x.value()==42 ? "fourty-two" : "bad value"); } struct