diff --git a/doc/boost-exception.html b/doc/boost-exception.html
index 2002d35..58540c2 100644
--- a/doc/boost-exception.html
+++ b/doc/boost-exception.html
@@ -346,7 +346,7 @@ boost
---unspecified--- enable_current_exception( T const & e );
}
Requirements:
-T must have an accessible no-throw copy constructor.
+T must be of user-defined type with an accessible no-throw copy constructor.
Returns:
An object of unspecified type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &).
Description:
diff --git a/doc/enable_current_exception.html b/doc/enable_current_exception.html
index 75069f9..d81a141 100644
--- a/doc/enable_current_exception.html
+++ b/doc/enable_current_exception.html
@@ -29,7 +29,7 @@ boost
---unspecified--- enable_current_exception( T const & e );
}
Requirements:
-T must have an accessible no-throw copy constructor.
+T must be of user-defined type with an accessible no-throw copy constructor.
Returns:
An object of unspecified type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &).
Description:
diff --git a/doc/source/boost-exception.reno b/doc/source/boost-exception.reno
index b4d5325..b19a95e 100644
--- a/doc/source/boost-exception.reno
+++ b/doc/source/boost-exception.reno
@@ -48,55 +48,6 @@
reno_context
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- 6
-
- reno_context
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- 8
-
- reno_context
-
-
+
+
+ 0
+
+ 8
+
+ reno_context
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 9
+
+ reno_context
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
0
@@ -285,6 +285,137 @@
reno_context
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 11
+
+ reno_context
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+ 12
+
+ reno_context
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+ 13
+
+ reno_context
+
-
-
- 0
-
- 12
-
- reno_context
-
-
-
-
-
- 0
-
-
-
-
- 0
-
- 13
-
- reno_context
-
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- 14
-
- reno_context
-
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
0
@@ -505,184 +510,6 @@
reno_context
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- 16
-
- reno_context
-
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- 17
-
- reno_context
-
-
-
-
-
- 0
-
-
-
-
- 0
-
- 18
-
- reno_context
-
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- 19
-
- reno_context
-
+
+
+ 0
+
+ 16
+
+ reno_context
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 17
+
+ reno_context
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 18
+
+ reno_context
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 19
+
+ reno_context
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
0
@@ -732,6 +732,94 @@
reno_context
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 21
+
+ reno_context
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+ 22
+
+ reno_context
+
+
+
+ 0
+
+ 27
reno_context
@@ -973,7 +1114,7 @@
0
- 25
+ 28
reno_context
@@ -1030,7 +1171,7 @@
0
- 26
+ 29
reno_context
@@ -1073,7 +1214,7 @@
0
- 27
+ 30
reno_context
@@ -1116,95 +1257,7 @@
0
- 28
-
- reno_context
-
-
-
-
-
-
- 1
- 5373E336DC4892A41D31694BCA1146382FC3137819A04689CA1F9FFAF1CFAB3B
- 4050491732
- 466
- 307
-
-
-
-
-
- 0
- ../../example/cloning_1.cpp
- 0
- 0
-
-
-
-
- using enable_current_exception at the time of the throw
-
-
- using_enable_cloning
-
-
-
-
-
- 0
-
-
-
-
- 0
-
- 29
-
- reno_context
-
-
-
-
-
-
- 1
- 429F0DE3599A4CC08B9458E2AECA2EAC202AB3471554FE82C307493805E6676E
- 4224422781
- 401
- 323
-
-
-
-
-
- 0
- ../../../../boost/exception.hpp
- 0
- 0
-
-
-
-
- boost/exception.hpp
-
-
- exception_hpp
-
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- 30
+ 31
reno_context
@@ -1249,7 +1302,7 @@
0
- 31
+ 32
reno_context
@@ -1294,7 +1347,7 @@
0
- 32
+ 33
reno_context
@@ -1339,7 +1392,7 @@
0
- 33
+ 34
reno_context
@@ -1384,7 +1437,7 @@
0
- 34
+ 35
reno_context
@@ -1425,59 +1478,6 @@
(:include include:)
(:auto also:)
-
-
- 0
-
- 35
-
- reno_context
-
-
-
-
-
-
- 3
- 13F58566E4D9F20B49F3F30B28528AEE562CD709108ADC1AE19A2F01D86C62F4
- 1430141721
- 2967
- 503
- 09CB6839AC1E71887371FB8159C2BFCD273A397C54E07B25CEF2EEF2FA24286A
- 4111403263
- 1924
- 878
- BAC52AC87CFA3174B3352140A8DC10BB7F48C945FC87787C3AC96F0FC2CFDB40
- 1066412964
- 165
- 57
-
-
-
-
-
- 0
- ../../../../boost/exception/exception.hpp
- 0
- 0
-
-
-
-
- exception::diagnostic_information
-
-
-
-
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
0
@@ -1848,7 +1848,7 @@
0
- -14
+ -18
2
@@ -1857,7 +1857,7 @@
0
- -15
+ -19
2
@@ -1875,7 +1875,7 @@
0
- -13
+ -16
2
@@ -1884,30 +1884,12 @@
0
- -19
+ -15
2
:)
##Transporting of Arbitrary Data to the Catch Site
###(:link
1
-
- 0
-
- -20
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- -21
-
-
- 2
- :)
###(:link
- 1
0
@@ -1917,51 +1899,6 @@
2
:)
###(:link
1
-
- 0
-
- -9
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- -40
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- -8
-
-
- 2
- :)
##(:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:) Transporting of Exceptions between Threads
###(:link
- 1
-
- 0
-
- -5
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- -38
-
-
- 2
- :)
###(:link
- 1
0
@@ -1974,12 +1911,39 @@
0
- -11
+ -24
2
:)
###(:link
1
+
+ 0
+
+ -7
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -40
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -10
+
+
+ 2
+ :)
##(:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:) Transporting of Exceptions between Threads
###(:link
+ 1
0
@@ -1989,6 +1953,42 @@
2
:)
###(:link
1
+
+ 0
+
+ -38
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -14
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ :)
###(:link
+ 1
0
@@ -2001,7 +2001,7 @@
0
- -24
+ -27
2
@@ -2019,25 +2019,7 @@
0
- -29
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- -30
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- -10
+ -17
2
@@ -2052,6 +2034,15 @@
2
:)
###(:link
1
+
+ 0
+
+ -13
+
+
+ 2
+ :)
###(:link
+ 1
0
@@ -2061,24 +2052,6 @@
2
:)
###(:link
1
-
- 0
-
- -7
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- -16
-
-
- 2
- :)
###(:link
- 1
0
@@ -2091,7 +2064,16 @@
0
- -18
+ -8
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -20
2
@@ -2104,6 +2086,24 @@
2
+ :)
###(:link
+ 1
+
+ 0
+
+ -9
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -35
+
+
+ 2
:)
#(:link
1
@@ -2118,7 +2118,7 @@
0
- -29
+ -17
2
@@ -2127,7 +2127,7 @@
0
- -7
+ -8
2
@@ -2136,7 +2136,7 @@
0
- -16
+ -20
2
@@ -2145,7 +2145,16 @@
0
- -33
+ -34
+
+
+ 2
+ api pre_indent="4":)
(:include
+ 1
+
+ 0
+
+ -32
2
@@ -2163,7 +2172,7 @@
0
- -30
+ -9
2
@@ -2172,7 +2181,7 @@
0
- -18
+ -13
2
@@ -2181,16 +2190,7 @@
0
- -10
-
-
- 2
- api pre_indent="4":)
(:include
- 1
-
- 0
-
- -34
+ -35
2
@@ -2199,30 +2199,12 @@
0
- -19
+ -15
2
:)
!!Transporting of Arbitrary Data to the Catch Site
(:include
1
-
- 0
-
- -20
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -21
-
-
- 2
- :)
(:include
- 1
0
@@ -2232,51 +2214,6 @@
2
:)
(:include
1
-
- 0
-
- -9
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -40
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -8
-
-
- 2
- :)
!!Transporting of Exceptions between Threads
(:include
- 1
-
- 0
-
- -5
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -38
-
-
- 2
- :)
(:include
- 1
0
@@ -2289,12 +2226,39 @@
0
- -11
+ -24
2
:)
(:include
1
+
+ 0
+
+ -7
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -40
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -10
+
+
+ 2
+ :)
!!Transporting of Exceptions between Threads
(:include
+ 1
0
@@ -2304,6 +2268,42 @@
2
:)
(:include
1
+
+ 0
+
+ -38
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -14
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ :)
(:include
+ 1
0
@@ -2316,7 +2316,7 @@
0
- -24
+ -27
2
@@ -2477,7 +2477,45 @@
- 0
+ 9
+ 2
+ [@class
(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :)
{
public:
(:include
+ 1
+
+ 0
+
+ -26
+
+
+ 2
+ decl pre_indent="4":)
protected:
(:include
+ 1
+
+ 0
+
+ -36
+
+
+ 2
+ decl pre_indent="4":)
(:include
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ decl pre_indent="4":)
};@]
@@ -2521,45 +2559,7 @@
- 9
- 2
- [@class
(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :)
{
public:
(:include
- 1
-
- 0
-
- -35
-
-
- 2
- decl pre_indent="4":)
protected:
(:include
- 1
-
- 0
-
- -36
-
-
- 2
- decl pre_indent="4":)
(:include
- 1
-
- 0
-
- -25
-
-
- 2
- decl pre_indent="4":)
};@]
+ 0
@@ -2570,18 +2570,7 @@
- 3
- 2
- [@template <class Tag,class T>
class
(:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)
{
public:
typedef T value_type;
error_info( value_type const & );
};@]
+ 0
@@ -2603,7 +2592,18 @@
- 0
+ 3
+ 2
+ [@template <class Tag,class T>
class
(:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)
{
public:
typedef T value_type;
error_info( value_type const & );
};@]
@@ -2881,18 +2881,7 @@
- 3
- 2
- [@(:include
- 1
-
- 0
-
- -19
-
-
- 2
- def:)@]
+ 0
@@ -2903,7 +2892,18 @@
- 0
+ 3
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ def:)@]
@@ -2914,7 +2914,54 @@
- 0
+ 11
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -37
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -14
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ decl:)@]
@@ -2925,18 +2972,7 @@
- 3
- 2
- [@(:include
- 1
-
- 0
-
- -38
-
-
- 2
- decl:)@]
+ 0
@@ -2969,7 +3005,18 @@
- 0
+ 3
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -38
+
+
+ 2
+ decl:)@]
@@ -3002,45 +3049,7 @@
- 9
- 2
- [@(:include
- 1
-
- 0
-
- -20
-
-
- 2
- def:)
(:include
- 1
-
- 0
-
- -9
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -8
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -21
-
-
- 2
- decl:)@]
+ 0
@@ -3051,7 +3060,54 @@
- 0
+ 11
+ 2
+ [@#include <(:link
+ 1
+
+ 0
+
+ -20
+
+
+ 2
+ :)>
#include <(:link
+ 1
+
+ 0
+
+ -34
+
+
+ 2
+ :)>
#include <(:link
+ 1
+
+ 0
+
+ -31
+
+
+ 2
+ :)>
#include <(:link
+ 1
+
+ 0
+
+ -9
+
+
+ 2
+ :)>
#include <(:link
+ 1
+
+ 0
+
+ -35
+
+
+ 2
+ :)>@]
@@ -3062,54 +3118,7 @@
- 11
- 2
- [@(:include
- 1
-
- 0
-
- -37
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -5
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -11
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -23
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -6
-
-
- 2
- decl:)@]
+ 0
@@ -3131,7 +3140,45 @@
- 0
+ 9
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ def:)
(:include
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -10
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -23
+
+
+ 2
+ decl:)@]
@@ -3230,54 +3277,7 @@
- 11
- 2
- [@#include <(:link
- 1
-
- 0
-
- -16
-
-
- 2
- :)>
#include <(:link
- 1
-
- 0
-
- -33
-
-
- 2
- :)>
#include <(:link
- 1
-
- 0
-
- -30
-
-
- 2
- :)>
#include <(:link
- 1
-
- 0
-
- -18
-
-
- 2
- :)>
#include <(:link
- 1
-
- 0
-
- -34
-
-
- 2
- :)>@]
+ 0
@@ -3288,18 +3288,7 @@
- 3
- 2
- [@(:include
- 1
-
- 0
-
- -24
-
-
- 2
- decl:)@]
+ 0
@@ -3317,7 +3306,7 @@
0
- -40
+ -27
2
@@ -3339,7 +3328,7 @@
0
- -20
+ -40
2
@@ -3383,7 +3372,7 @@
0
- -43
+ -24
2
@@ -3398,7 +3387,18 @@
- 0
+ 3
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -43
+
+
+ 2
+ decl:)@]
@@ -3510,28 +3510,6 @@
-5
-
- 3
- 2
- [@typedef ---unspecified--- (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :);@]
-
-
-
-
- 0
-
- -6
-
-
5
2
@@ -3540,7 +3518,7 @@
0
- -6
+ -5
2
@@ -3549,13 +3527,35 @@
0
- -5
+ -6
2
:) const & ep );
+
+
+ 0
+
+ -6
+
+
+
+ 3
+ 2
+ [@typedef ---unspecified--- (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :);@]
+
+
0
@@ -3563,66 +3563,6 @@
-7
-
- 0
-
-
-
-
- 0
-
- -8
-
-
-
- 9
- 2
- [@typedef (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<struct tag_throw_function,char const *> throw_function;
typedef (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<struct tag_throw_file,char const *> throw_file;
typedef (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<struct tag_throw_line,int> throw_line;
#define (:link
- 1
-
- 0
-
- -8
-
-
- 2
- :)\
::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
::boost::throw_file(__FILE__) <<\
::boost::throw_line((int)__LINE__)@]
-
-
-
-
- 0
-
- -9
-
-
3
2
@@ -3631,7 +3571,7 @@
0
- -9
+ -7
2
@@ -3642,13 +3582,73 @@
0
- -10
+ -8
0
+
+
+ 0
+
+ -9
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -10
+
+
+
+ 9
+ 2
+ [@typedef (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<struct tag_throw_function,char const *> throw_function;
typedef (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<struct tag_throw_file,char const *> throw_file;
typedef (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<struct tag_throw_line,int> throw_line;
#define (:link
+ 1
+
+ 0
+
+ -10
+
+
+ 2
+ :)\
::boost::throw_function(BOOST_CURRENT_FUNCTION) <<\
::boost::throw_file(__FILE__) <<\
::boost::throw_line((int)__LINE__)@]
+
+
0
@@ -3657,27 +3657,7 @@
- 5
- 2
- [@template <class T>
(:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) (:link
- 1
-
- 0
-
- -11
-
-
- 2
- :)( T const & e );@]
+ 0
@@ -3710,7 +3690,27 @@
- 0
+ 5
+ 2
+ [@template <class T>
(:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) (:link
+ 1
+
+ 0
+
+ -14
+
+
+ 2
+ :)( T const & e );@]
@@ -3721,7 +3721,18 @@
- 0
+ 3
+ 2
+ [@class
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ ;@]
@@ -3765,18 +3776,7 @@
- 3
- 2
- [@class
- 1
-
- 0
-
- -19
-
-
- 2
- ;@]
+ 0
@@ -3787,18 +3787,7 @@
- 3
- 2
- [@template <class Tag,class T>
class (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :);@]
+ 0
@@ -3809,27 +3798,7 @@
- 5
- 2
- [@template <class E, class Tag, class T>
E const & (:link
- 1
-
- 0
-
- -21
-
-
- 2
- |operator<<:)( E const & x, (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<Tag,T> const & v );@]
+ 0
@@ -3840,9 +3809,9 @@
- 7
+ 3
2
- [@template <class E, class Tag1, class T1, ..., class TagN, class TN>
E const & (:link
+ [@template <class Tag,class T>
class (:link
1
0
@@ -3851,25 +3820,7 @@
2
- |operator<<:)( E const & x,
(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)<
(:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<Tag1,T1>,
...,
(:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<TagN,TN> > const & v );@]
+ :);@]
@@ -3882,16 +3833,7 @@
5
2
- [@(:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) (:link
+ [@template <class E, class Tag, class T>
E const & (:link
1
0
@@ -3900,7 +3842,16 @@
2
- :)();@]
+ |operator<<:)( E const & x, (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<Tag,T> const & v );@]
@@ -3911,9 +3862,9 @@
- 3
+ 7
2
- [@std::string
+ [@template <class E, class Tag1, class T1, ..., class TagN, class TN>
E const & (:link
1
0
@@ -3922,7 +3873,25 @@
2
- ( std::exception const & x );@]
+ |operator<<:)( E const & x,
(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)<
(:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<Tag1,T1>,
...,
(:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<TagN,TN> > const & v );@]
@@ -3933,10 +3902,19 @@
- 3
+ 5
2
[@(:link
1
+
+ 0
+
+ -6
+
+
+ 2
+ :) (:link
+ 1
0
@@ -3944,7 +3922,7 @@
2
- mod="m":)();@]
+ :)();@]
@@ -3955,7 +3933,18 @@
- 0
+ 3
+ 2
+ [@virtual char const * (:link
+ 1
+
+ 0
+
+ -26
+
+
+ 2
+ mod="m":)() const throw();@]
@@ -3966,7 +3955,18 @@
- 0
+ 3
+ 2
+ [@std::string
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ ( std::exception const & x );@]
@@ -3977,7 +3977,18 @@
- 0
+ 3
+ 2
+ [@(:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ mod="m":)();@]
@@ -4054,18 +4065,7 @@
- 3
- 2
- [@virtual char const * (:link
- 1
-
- 0
-
- -35
-
-
- 2
- mod="m":)() const throw();@]
+ 0
@@ -4101,7 +4101,7 @@
0
- -19
+ -15
2
@@ -4132,7 +4132,7 @@
0
- -19
+ -15
2
@@ -4269,45 +4269,9 @@
- 9
+ 1
2
- (:auto !!!:)
(:include synopsis:)
The (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :)'s operations do not throw.
Two instances of (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) are equivalent and compare equal if and only if they refer to the same exception.
The default constructor of (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) produces the null value of the type. The null value is equivalent only to itself.
+ (:auto !!!:)
(:include synopsis:)
!!!!Precondition:
ep shall not be null.
!!!!Throws:
The exception to which ep refers.
@@ -4318,9 +4282,45 @@
- 1
+ 9
2
- (:auto !!!:)
(:include synopsis:)
!!!!Precondition:
ep shall not be null.
!!!!Throws:
The exception to which ep refers.
+ (:auto !!!:)
(:include synopsis:)
The (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :)'s operations do not throw.
Two instances of (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) are equivalent and compare equal if and only if they refer to the same exception.
The default constructor of (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) produces the null value of the type. The null value is equivalent only to itself.
@@ -4330,59 +4330,6 @@
-7
-
- 1
- 2
- (:auto !!:)
!!!Synopsis
(:include synopsis:)
-
-
-
-
- 0
-
- -8
-
-
-
- 7
- 2
- (:auto !!!:)
(:include synopsis:)
This macro is designed to be used with (:link
- 1
-
- 0
-
- -21
-
-
- 2
- |operator<<:) when throwing a boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :), to store information about the location of the throw statement. It can be chained with other (:link
- 1
-
- 0
-
- -20
-
-
- 2
- mod="p":) in a single throw expression.
-
-
-
-
- 0
-
- -9
-
-
7
2
@@ -4391,7 +4338,7 @@
0
- -20
+ -22
2
@@ -4400,7 +4347,7 @@
0
- -19
+ -15
2
@@ -4409,7 +4356,7 @@
0
- -21
+ -23
2
@@ -4420,7 +4367,7 @@
0
- -10
+ -8
@@ -4433,13 +4380,26 @@
0
- -11
+ -9
- 3
+ 1
2
- (:auto !!!:)
(:include synopsis:)
!!!!Effects:
As if try { throw e; } catch( ... ) { return (:link
+ (:auto !!:)
!!!Synopsis
(:include synopsis:)
+
+
+
+
+ 0
+
+ -10
+
+
+
+ 7
+ 2
+ (:auto !!!:)
(:include synopsis:)
This macro is designed to be used with (:link
1
0
@@ -4448,14 +4408,32 @@
2
- :)(); }
+ |operator<<:) when throwing a boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :), to store information about the location of the throw statement. It can be chained with other (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ mod="p":) in a single throw expression.
0
- -12
+ -11
@@ -4466,7 +4444,7 @@
0
- -19
+ -15
2
@@ -4475,7 +4453,7 @@
0
- -29
+ -17
2
@@ -4484,7 +4462,7 @@
0
- -20
+ -22
2
@@ -4493,7 +4471,7 @@
0
- -19
+ -15
2
@@ -4502,7 +4480,7 @@
0
- -29
+ -17
2
@@ -4511,7 +4489,7 @@
0
- -20
+ -22
2
@@ -4520,7 +4498,7 @@
0
- -19
+ -15
2
@@ -4529,7 +4507,7 @@
0
- -19
+ -15
2
@@ -4538,7 +4516,7 @@
0
- -19
+ -15
2
@@ -4547,7 +4525,74 @@
0
- -9
+ -7
+
+
+ 2
+ :).
+
+
+
+
+ 0
+
+ -12
+
+
+
+ 13
+ 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
+
+ -34
+
+
+ 2
+ :)>
#include <boost/shared_ptr.hpp>
#include <stdio.h>
#include <string>
#include <errno.h>
typedef boost::(:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<struct tag_file_name,std::string> file_name_info;
typedef boost::(:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<struct tag_function,char const *> function_info;
typedef boost::(:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<struct tag_errno,int> errno_info;
typedef boost::tuple<function_info,errno_info> clib_failure;
class file_open_error: public boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) { };
boost::shared_ptr<FILE>
file_open( char const * name, char const * mode )
{
if( FILE * f=fopen(name,mode) )
return boost::shared_ptr<FILE>(f,fclose);
else
throw file_open_error() <<
file_name_info(name) <<
clib_failure("fopen",errno);
}@]
Note that the members of a boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:) are stored separately in exception objects; they can only be retrieved individually, using (:link
+ 1
+
+ 0
+
+ -7
2
@@ -4562,99 +4607,9 @@
- 21
+ 1
2
- (:auto !!:)
Class boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) provides a virtual member function (:link
- 1
-
- 0
-
- -35
-
-
- 2
- mod="m":), with a signature similar to the familiar std::exception::what function. The default implementation returns a string value that is not presentable as a friendly user message, but because it is generated automatically, it is useful for debugging or logging purposes. Here is an example:
[@#include <(:link
- 1
-
- 0
-
- -29
-
-
- 2
- :)>
#include <iostream>
void f(); //throws unknown types that derive from boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :).
void
g()
{
try
{
f();
}
catch(
boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) & e )
{
std::cerr << e.(:link
- 1
-
- 0
-
- -35
-
-
- 2
- mod="m":)();
}
}@]
The (:link
- 1
-
- 0
-
- -35
-
-
- 2
- mod="m":) member function iterates over all data objects stored in the boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) through (:link
- 1
-
- 0
-
- -21
-
-
- 2
- |operator<<:). The returned string is constructed by converting each data object to string and then concatenating these strings together.
When the (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<Tag,T> template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.
Otherwise, the system attempts overload resolution for s << x, where s is a std::ostringstream and x is of type T. If this is successful, the operator<< overload is used to convert objects of type T to string.
Otherwise the system is unable to convert objects of type T to string, and an unspecified stub string value is used without issuing a compile error.
+ (:auto !!:)
!!!Synopsis
(:include synopsis:)
@@ -4664,6 +4619,238 @@
-14
+
+ 3
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Effects:
As if try { throw e; } catch( ... ) { return (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :)(); }
+
+
+
+
+ 0
+
+ -15
+
+
+
+ 19
+ 2
+ (:auto !!!:)
(:include synopsis:)
Class boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) is designed to be used as a universal base for user-defined exception types.
An object of any type deriving from boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) can store data of arbitrary types, using the (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :) wrapper and (:link
+ 1
+
+ 0
+
+ -23
+
+
+ 2
+ |operator<<:).
To retrieve data from a boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) object, use the (:link
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ :) function template.
(:include
+ 1
+
+ 0
+
+ -36
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -26
+
+
+ 2
+ :)
+
+
+
+
+ 0
+
+ -16
+
+
+
+ 21
+ 2
+ (:auto !!:)
Class boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) provides a virtual member function (:link
+ 1
+
+ 0
+
+ -26
+
+
+ 2
+ mod="m":), with a signature similar to the familiar std::exception::what function. The default implementation returns a string value that is not presentable as a friendly user message, but because it is generated automatically, it is useful for debugging or logging purposes. Here is an example:
[@#include <(:link
+ 1
+
+ 0
+
+ -17
+
+
+ 2
+ :)>
#include <iostream>
void f(); //throws unknown types that derive from boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :).
void
g()
{
try
{
f();
}
catch(
boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) & e )
{
std::cerr << e.(:link
+ 1
+
+ 0
+
+ -26
+
+
+ 2
+ mod="m":)();
}
}@]
The (:link
+ 1
+
+ 0
+
+ -26
+
+
+ 2
+ mod="m":) member function iterates over all data objects stored in the boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) through (:link
+ 1
+
+ 0
+
+ -23
+
+
+ 2
+ |operator<<:). The returned string is constructed by converting each data object to string and then concatenating these strings together.
When the (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<Tag,T> template is instantiated, the system attempts overload resolution for an unqualified call to to_string(x), where x is of type T. If this is successful, the to_string overload is expected to return std::string and is used to convert objects of type T to string.
Otherwise, the system attempts overload resolution for s << x, where s is a std::ostringstream and x is of type T. If this is successful, the operator<< overload is used to convert objects of type T to string.
Otherwise the system is unable to convert objects of type T to string, and an unspecified stub string value is used without issuing a compile error.
+
+
+
+
+ 0
+
+ -17
+
+
+
+ 1
+ 2
+ (:auto !!:)
!!!Synopsis
(:include synopsis:)
+
+
+
+
+ 0
+
+ -18
+
+
11
2
@@ -4672,7 +4859,7 @@
0
- -19
+ -15
2
@@ -4681,7 +4868,7 @@
0
- -19
+ -15
2
@@ -4690,7 +4877,16 @@
0
- -26
+ -29
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -11
2
@@ -4703,15 +4899,6 @@
2
- :)
(:include
- 1
-
- 0
-
- -17
-
-
- 2
:)
@@ -4719,7 +4906,7 @@
0
- -15
+ -19
@@ -4730,7 +4917,7 @@
0
- -19
+ -15
2
@@ -4748,7 +4935,7 @@
0
- -19
+ -15
2
@@ -4757,7 +4944,7 @@
0
- -29
+ -17
2
@@ -4766,7 +4953,7 @@
0
- -20
+ -22
2
@@ -4775,7 +4962,7 @@
0
- -20
+ -22
2
@@ -4784,7 +4971,7 @@
0
- -20
+ -22
2
@@ -4811,7 +4998,7 @@
0
- -19
+ -15
2
@@ -4820,7 +5007,7 @@
0
- -21
+ -23
2
@@ -4829,7 +5016,7 @@
0
- -19
+ -15
2
@@ -4838,200 +5025,13 @@
0
- -14
+ -18
2
|more information can be added to the exception at a later time:).
-
-
- 0
-
- -16
-
-
-
- 1
- 2
- (:auto !!:)
!!!Synopsis
(:include synopsis:)
-
-
-
-
- 0
-
- -17
-
-
-
- 13
- 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
-
- -33
-
-
- 2
- :)>
#include <boost/shared_ptr.hpp>
#include <stdio.h>
#include <string>
#include <errno.h>
typedef boost::(:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<struct tag_file_name,std::string> file_name_info;
typedef boost::(:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<struct tag_function,char const *> function_info;
typedef boost::(:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<struct tag_errno,int> errno_info;
typedef boost::tuple<function_info,errno_info> clib_failure;
class file_open_error: public boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) { };
boost::shared_ptr<FILE>
file_open( char const * name, char const * mode )
{
if( FILE * f=fopen(name,mode) )
return boost::shared_ptr<FILE>(f,fclose);
else
throw file_open_error() <<
file_name_info(name) <<
clib_failure("fopen",errno);
}@]
Note that the members of a boost::(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:) are stored separately in exception objects; they can only be retrieved individually, using (:link
- 1
-
- 0
-
- -9
-
-
- 2
- :).
-
-
-
-
- 0
-
- -18
-
-
-
- 1
- 2
- (:auto !!:)
!!!Synopsis
(:include synopsis:)
-
-
-
-
- 0
-
- -19
-
-
-
- 19
- 2
- (:auto !!!:)
(:include synopsis:)
Class boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) is designed to be used as a universal base for user-defined exception types.
An object of any type deriving from boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) can store data of arbitrary types, using the (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :) wrapper and (:link
- 1
-
- 0
-
- -21
-
-
- 2
- |operator<<:).
To retrieve data from a boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) object, use the (:link
- 1
-
- 0
-
- -9
-
-
- 2
- :) function template.
(:include
- 1
-
- 0
-
- -36
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -25
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -35
-
-
- 2
- :)
-
-
0
@@ -5040,117 +5040,9 @@
- 25
+ 1
2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
T must have accessible copy constructor and must not be a reference (there is no requirement that T's copy constructor does not throw.)
!!!!Description:
This class template is used to associate a Tag type with a value type T. Objects of type (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<Tag,T> can be passed to (:link
- 1
-
- 0
-
- -21
-
-
- 2
- |operator<<:) to be stored in objects of type boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :).
!!!!Note:
The header <(:link
- 1
-
- 0
-
- -32
-
-
- 2
- :)> provides a declaration of the (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :) template, which is sufficient for the purpose of typedefing an instance for specific Tag and T, like this:
[@#include <(:link
- 1
-
- 0
-
- -32
-
-
- 2
- :)>
typedef boost::(:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<struct tag_errno,int> errno_info;@]
Of course, to actually add an (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :) object to (:link
- 1
-
- 0
-
- -19
-
-
- 2
- mod="p":) using (:link
- 1
-
- 0
-
- -21
-
-
- 2
- |operator<<:), or to retrieve it using (:link
- 1
-
- 0
-
- -9
-
-
- 2
- :), you must first #include <(:link
- 1
-
- 0
-
- -16
-
-
- 2
- :)>.
+ (:auto !!:)
!!!Synopsis
(:include synopsis:)
@@ -5160,529 +5052,6 @@
-21
-
- 7
- 2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must be boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :), or a type that derives (indirectly) from boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :).
!!!!Effects:
Stores a copy of v into x. If x already contains data of type (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<Tag,T>, that data is overwritten.
!!!!Returns:
x.
(:include throws:)
-
-
-
-
- 0
-
- -22
-
-
-
- 5
- 2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must be boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :), or a type that derives (indirectly) from boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :).
!!!!Effects:
Equivalent to x << v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)<0>() << ... << v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)<N>().
!!!!Returns:
x.
(:include throws:)
-
-
-
-
- 0
-
- -23
-
-
-
- 29
- 2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
The (:link
- 1
-
- 0
-
- -23
-
-
- 2
- :) function must not be called outside of a catch block.
!!!!Returns:
* An (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) that refers to the currently handled exception or a copy of the currently handled exception.
* If the function needs to allocate memory and the attempt fails, it returns an (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) that refers to an instance of std::bad_alloc.
!!!!Throws:
Nothing.
!!!!Notes:
* It is unspecified whether the return values of two successive calls to (:link
- 1
-
- 0
-
- -23
-
-
- 2
- :) refer to the same exception object.
* Correct implementation of (:link
- 1
-
- 0
-
- -23
-
-
- 2
- :) may require compiler support, unless (:link
- 1
-
- 0
-
- -38
-
-
- 2
- :) was used at the time the currently handled exception object was passed to throw. If (:link
- 1
-
- 0
-
- -38
-
-
- 2
- :) was not used, and if the compiler does not provide the necessary support, then (:link
- 1
-
- 0
-
- -23
-
-
- 2
- :) may return an (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) that refers to an instance of (:link
- 1
-
- 0
-
- -37
-
-
- 2
- :). In this case, if the original exception object derives from boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :), then the boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) sub-object of the (:link
- 1
-
- 0
-
- -37
-
-
- 2
- :) object is initialized by the boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) copy constructor.
-
-
-
-
- 0
-
- -24
-
-
-
- 5
- 2
- (:auto !!!:)
(:include synopsis:)
!!!!Returns:
If dynamic_cast<boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) const *>(&x) is not null, the returned string is initialized by a call to (:link
- 1
-
- 0
-
- -35
-
-
- 2
- :); otherwise, the returned string combines the output of x.what() and typeid(x).name().
-
-
-
-
- 0
-
- -25
-
-
-
- 3
- 2
- (:auto !!!:)
(:include decl:)
!!!!Effects:
Frees all resources associated with a boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) object.
!!!!Throws:
Nothing.
-
-
-
-
- 0
-
- -26
-
-
-
- 17
- 2
- (:auto !!!:)
The following example demonstrates how errno can be stored in exception objects using Boost Exception:
[@#include <(:link
- 1
-
- 0
-
- -29
-
-
- 2
- :)>
#include <errno.h>
#include <iostream>
typedef boost::(:link
- 1
-
- 0
-
- -20
-
-
- 2
- :)<struct tag_errno,int> errno_info; //(1)
class my_error: public boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :), public std::exception { }; //(2)
void
f()
{
throw my_error() << errno_info(errno); //(3)
}
@]
First, we instantiate the (:link
- 1
-
- 0
-
- -20
-
-
- 2
- :) template using a unique identifier -- tag_errno, and the type of the info it identifies -- int. This provides compile-time type safety for the various values stored in exception objects.
Second, we define class my_error, which derives from boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :).
Finally, (3) illustrates how the typedef from (1) can be used with (:link
- 1
-
- 0
-
- -21
-
-
- 2
- |operator<<:) to store values in exception objects at the point of the throw.
The stored errno value can be recovered at a later time like this:
[@// ...continued
void
g()
{
try
{
f();
}
catch(
my_error & x )
{
if( boost::shared_ptr<int const> err=boost::(:link
- 1
-
- 0
-
- -9
-
-
- 2
- :)<errno_info>(x) )
std::cerr << "Error code: " << *err;
}
}@]
The (:link
- 1
-
- 0
-
- -9
-
-
- 2
- :) function template is instantiated with the typedef from (1), and is passed an exception object of a polymorphic type. If the exception object contains the requested value, the returned (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:) will point to it; otherwise an empty (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:) is returned.
-
-
-
-
- 0
-
- -27
-
-
-
- 37
- 2
- (:auto !!!:)
When you catch an exception, you can call (:link
- 1
-
- 0
-
- -23
-
-
- 2
- :) to get an (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) object:
[@#include <(:link
- 1
-
- 0
-
- -18
-
-
- 2
- :)>
#include <boost/thread.hpp>
#include <boost/bind.hpp>
void do_work(); //throws cloning-enabled boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :)s
void
worker_thread( boost::(:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) & error )
{
try
{
do_work();
error = boost::(:link
- 1
-
- 0
-
- -5
-
-
- 2
- :)();
}
catch(
... )
{
error = boost::(:link
- 1
-
- 0
-
- -23
-
-
- 2
- :)();
}
}@]
In the above example, note that (:link
- 1
-
- 0
-
- -23
-
-
- 2
- :) captures the original type of the exception object. The exception can be thrown again using the (:link
- 1
-
- 0
-
- -6
-
-
- 2
- :) function:
[@// ...continued
void
work()
{
boost::(:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) error;
boost::(:link http://www.boost.org/doc/html/boost/thread.html|thread:) t( boost::(:link http://www.boost.org/libs/bind/bind.html|bind:)(worker_thread,boost::(:link http://www.boost.org/doc/html/ref.html|ref:)(error)) );
t.(:link http://www.boost.org/doc/html/boost/thread.html|join:)();
if( error )
boost::(:link
- 1
-
- 0
-
- -6
-
-
- 2
- :)(error);
}@]
Note that (:link
- 1
-
- 0
-
- -23
-
-
- 2
- :) could fail to copy the original exception object in the following cases:
* if there is not enough memory, in which case the returned (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) points to an instance of std::bad_alloc, or
* if (:link
- 1
-
- 0
-
- -38
-
-
- 2
- :) was not used in the throw-expression passed to the original throw statement and the current implementation does not have the necessary compiler-specific support to copy the exception automatically, in which case the returned (:link
- 1
-
- 0
-
- -5
-
-
- 2
- :) points to an instance of (:link
- 1
-
- 0
-
- -37
-
-
- 2
- :).
Regardless, the use of (:link
- 1
-
- 0
-
- -23
-
-
- 2
- :) and (:link
- 1
-
- 0
-
- -6
-
-
- 2
- :) in the above examples is well-formed.
-
-
-
-
- 0
-
- -28
-
-
13
2
@@ -5691,7 +5060,7 @@
0
- -10
+ -13
2
@@ -5700,7 +5069,7 @@
0
- -16
+ -20
2
@@ -5709,7 +5078,7 @@
0
- -19
+ -15
2
@@ -5736,13 +5105,473 @@
0
- -19
+ -15
2
:).
+
+
+ 0
+
+ -22
+
+
+
+ 25
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
T must have accessible copy constructor and must not be a reference (there is no requirement that T's copy constructor does not throw.)
!!!!Description:
This class template is used to associate a Tag type with a value type T. Objects of type (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<Tag,T> can be passed to (:link
+ 1
+
+ 0
+
+ -23
+
+
+ 2
+ |operator<<:) to be stored in objects of type boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :).
!!!!Note:
The header <(:link
+ 1
+
+ 0
+
+ -33
+
+
+ 2
+ :)> provides a declaration of the (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :) template, which is sufficient for the purpose of typedefing an instance for specific Tag and T, like this:
[@#include <(:link
+ 1
+
+ 0
+
+ -33
+
+
+ 2
+ :)>
typedef boost::(:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<struct tag_errno,int> errno_info;@]
Of course, to actually add an (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :) object to (:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ mod="p":) using (:link
+ 1
+
+ 0
+
+ -23
+
+
+ 2
+ |operator<<:), or to retrieve it using (:link
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ :), you must first #include <(:link
+ 1
+
+ 0
+
+ -20
+
+
+ 2
+ :)>.
+
+
+
+
+ 0
+
+ -23
+
+
+
+ 7
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must be boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :), or a type that derives (indirectly) from boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :).
!!!!Effects:
Stores a copy of v into x. If x already contains data of type (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<Tag,T>, that data is overwritten.
!!!!Returns:
x.
(:include throws:)
+
+
+
+
+ 0
+
+ -24
+
+
+
+ 5
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must be boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :), or a type that derives (indirectly) from boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :).
!!!!Effects:
Equivalent to x << v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)<0>() << ... << v.(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html#accessing_elements|get:)<N>().
!!!!Returns:
x.
(:include throws:)
+
+
+
+
+ 0
+
+ -25
+
+
+
+ 29
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
The (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) function must not be called outside of a catch block.
!!!!Returns:
* An (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) that refers to the currently handled exception or a copy of the currently handled exception.
* If the function needs to allocate memory and the attempt fails, it returns an (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) that refers to an instance of std::bad_alloc.
!!!!Throws:
Nothing.
!!!!Notes:
* It is unspecified whether the return values of two successive calls to (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) refer to the same exception object.
* Correct implementation of (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) may require compiler support, unless (:link
+ 1
+
+ 0
+
+ -38
+
+
+ 2
+ :) was used at the time the currently handled exception object was passed to throw. If (:link
+ 1
+
+ 0
+
+ -38
+
+
+ 2
+ :) was not used, and if the compiler does not provide the necessary support, then (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) may return an (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) that refers to an instance of (:link
+ 1
+
+ 0
+
+ -37
+
+
+ 2
+ :). In this case, if the original exception object derives from boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :), then the boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) sub-object of the (:link
+ 1
+
+ 0
+
+ -37
+
+
+ 2
+ :) object is initialized by the boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) copy constructor.
+
+
+
+
+ 0
+
+ -26
+
+
+
+ 15
+ 2
+ (:auto !!!:)
(:include decl:)
!!!!Returns:
A string representation of all data stored in the boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) object by the (:link
+ 1
+
+ 0
+
+ -23
+
+
+ 2
+ |operator<<:) function. See "(:link
+ 1
+
+ 0
+
+ -16
+
+
+ 2
+ mod="w":)" for details.
!!!!Throws:
Nothing.
!!!!Notes:
*The return value remains valid until the exception object from which it was obtained is destroyed or modified.
*The header
+ 1
+
+ 0
+
+ -31
+
+
+ 2
+ provides a namespace-scope function
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ which takes a std::exception. It calls
+ 1
+
+ 0
+
+ -26
+
+
+ 2
+ if its argument can be converted to boost::
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ ; otherwise it returns a string that combines the value of std::exception::what and the exception's dynamic type.
+
+
+
+
+ 0
+
+ -27
+
+
+
+ 5
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Returns:
If dynamic_cast<boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) const *>(&x) is not null, the returned string is initialized by a call to (:link
+ 1
+
+ 0
+
+ -26
+
+
+ 2
+ :); otherwise, the returned string combines the output of x.what() and typeid(x).name().
+
+
+
+
+ 0
+
+ -28
+
+
+
+ 3
+ 2
+ (:auto !!!:)
(:include decl:)
!!!!Effects:
Frees all resources associated with a boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :) object.
!!!!Throws:
Nothing.
+
+
0
@@ -5751,9 +5580,81 @@
- 1
+ 17
2
- (:auto !!:)
!!!Synopsis
(:include synopsis:)
+ (:auto !!!:)
The following example demonstrates how errno can be stored in exception objects using Boost Exception:
[@#include <(:link
+ 1
+
+ 0
+
+ -17
+
+
+ 2
+ :)>
#include <errno.h>
#include <iostream>
typedef boost::(:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)<struct tag_errno,int> errno_info; //(1)
class my_error: public boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :), public std::exception { }; //(2)
void
f()
{
throw my_error() << errno_info(errno); //(3)
}
@]
First, we instantiate the (:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :) template using a unique identifier -- tag_errno, and the type of the info it identifies -- int. This provides compile-time type safety for the various values stored in exception objects.
Second, we define class my_error, which derives from boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :).
Finally, (3) illustrates how the typedef from (1) can be used with (:link
+ 1
+
+ 0
+
+ -23
+
+
+ 2
+ |operator<<:) to store values in exception objects at the point of the throw.
The stored errno value can be recovered at a later time like this:
[@// ...continued
void
g()
{
try
{
f();
}
catch(
my_error & x )
{
if( boost::shared_ptr<int const> err=boost::(:link
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ :)<errno_info>(x) )
std::cerr << "Error code: " << *err;
}
}@]
The (:link
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ :) function template is instantiated with the typedef from (1), and is passed an exception object of a polymorphic type. If the exception object contains the requested value, the returned (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:) will point to it; otherwise an empty (:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:) is returned.
@@ -5764,9 +5665,171 @@
- 1
+ 37
2
- (:auto !!:)
!!!Synopsis
(:include synopsis:)
+ (:auto !!!:)
When you catch an exception, you can call (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) to get an (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) object:
[@#include <(:link
+ 1
+
+ 0
+
+ -9
+
+
+ 2
+ :)>
#include <boost/thread.hpp>
#include <boost/bind.hpp>
void do_work(); //throws cloning-enabled boost::(:link
+ 1
+
+ 0
+
+ -15
+
+
+ 2
+ :)s
void
worker_thread( boost::(:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) & error )
{
try
{
do_work();
error = boost::(:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :)();
}
catch(
... )
{
error = boost::(:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :)();
}
}@]
In the above example, note that (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) captures the original type of the exception object. The exception can be thrown again using the (:link
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ :) function:
[@// ...continued
void
work()
{
boost::(:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) error;
boost::(:link http://www.boost.org/doc/html/boost/thread.html|thread:) t( boost::(:link http://www.boost.org/libs/bind/bind.html|bind:)(worker_thread,boost::(:link http://www.boost.org/doc/html/ref.html|ref:)(error)) );
t.(:link http://www.boost.org/doc/html/boost/thread.html|join:)();
if( error )
boost::(:link
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ :)(error);
}@]
Note that (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) could fail to copy the original exception object in the following cases:
* if there is not enough memory, in which case the returned (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) points to an instance of std::bad_alloc, or
* if (:link
+ 1
+
+ 0
+
+ -38
+
+
+ 2
+ :) was not used in the throw-expression passed to the original throw statement and the current implementation does not have the necessary compiler-specific support to copy the exception automatically, in which case the returned (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :) points to an instance of (:link
+ 1
+
+ 0
+
+ -37
+
+
+ 2
+ :).
Regardless, the use of (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) and (:link
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ :) in the above examples is well-formed.
@@ -5829,72 +5892,9 @@
- 15
+ 1
2
- (:auto !!!:)
(:include decl:)
!!!!Returns:
A string representation of all data stored in the boost::(:link
- 1
-
- 0
-
- -19
-
-
- 2
- :) object by the (:link
- 1
-
- 0
-
- -21
-
-
- 2
- |operator<<:) function. See "(:link
- 1
-
- 0
-
- -13
-
-
- 2
- mod="w":)" for details.
!!!!Throws:
Nothing.
!!!!Notes:
*The return value remains valid until the exception object from which it was obtained is destroyed or modified.
*The header
- 1
-
- 0
-
- -30
-
-
- 2
- provides a namespace-scope function
- 1
-
- 0
-
- -24
-
-
- 2
- which takes a std::exception. It calls
- 1
-
- 0
-
- -35
-
-
- 2
- if its argument can be converted to boost::
- 1
-
- 0
-
- -19
-
-
- 2
- ; otherwise it returns a string that combines the value of std::exception::what and the exception's dynamic type.
+ (:auto !!:)
!!!Synopsis
(:include synopsis:)
@@ -5912,7 +5912,7 @@
0
- -19
+ -15
2
@@ -5921,7 +5921,7 @@
0
- -19
+ -15
2
@@ -5930,7 +5930,7 @@
0
- -21
+ -23
2
@@ -5952,7 +5952,7 @@
0
- -5
+ -6
2
@@ -5961,7 +5961,7 @@
0
- -23
+ -25
2
@@ -5978,16 +5978,16 @@
21
2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
T must have an accessible no-throw copy constructor.
!!!!Returns:
An object of ''unspecified'' type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &).
!!!!Description:
This function is designed to be used directly in a throw-expression to enable the
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
T must be of user-defined type with an accessible no-throw copy constructor.
!!!!Returns:
An object of ''unspecified'' type which derives publicly from T. That is, the returned object can be intercepted by a catch(T &).
!!!!Description:
This function is designed to be used directly in a throw-expression to enable the (:link
1
0
- -5
+ -6
2
- support in Boost Exception. For example:
[@class
my_exception:
public std::exception
{
};
....
throw boost::(:link
+ :) support in Boost Exception. For example:
[@class
my_exception:
public std::exception
{
};
....
throw boost::(:link
1
0
@@ -6010,7 +6010,7 @@
0
- -23
+ -25
2
@@ -6019,7 +6019,7 @@
0
- -5
+ -6
2
@@ -6037,7 +6037,7 @@
0
- -23
+ -25
2
@@ -6055,20 +6055,20 @@
0
- -19
+ -15
2
- :) and supports the
+ :) and supports the (:link
1
0
- -5
+ -6
2
- functionality.
+ :) functionality.
@@ -6097,7 +6097,7 @@
0
- -19
+ -15
2
@@ -6106,7 +6106,7 @@
0
- -19
+ -15
2
@@ -6146,7 +6146,7 @@
0
- -19
+ -15
2
@@ -6155,7 +6155,7 @@
0
- -28
+ -21
2
@@ -6164,7 +6164,7 @@
0
- -27
+ -30
2
@@ -6447,9 +6447,7 @@
- 1
- 2
- !!!!Throws:
std::bad_alloc, or any exception emitted by the T copy constructor.
+ 0
@@ -6460,9 +6458,7 @@
- 1
- 2
- !!!!Throws:
std::bad_alloc, or any exception emitted by T1..TN copy constructor.
+ 0
@@ -6473,7 +6469,9 @@
- 0
+ 1
+ 2
+ !!!!Throws:
std::bad_alloc, or any exception emitted by the T copy constructor.
@@ -6484,7 +6482,9 @@
- 0
+ 1
+ 2
+ !!!!Throws:
std::bad_alloc, or any exception emitted by T1..TN copy constructor.
@@ -6725,7 +6725,7 @@
0
- -18
+ -9
2
@@ -6747,7 +6747,7 @@
0
- -18
+ -9
2
@@ -6762,9 +6762,18 @@
- 1
+ 3
2
- [@namespace
boost
{
(:include api pre_indent="4":)
}@]
+ `#include <(:link
+ 1
+
+ 0
+
+ -20
+
+
+ 2
+ :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
@@ -6775,18 +6784,9 @@
- 3
+ 1
2
- `#include <(:link
- 1
-
- 0
-
- -16
-
-
- 2
- :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+ [@namespace
boost
{
(:include api pre_indent="4":)
}@]
@@ -6799,16 +6799,16 @@
3
2
- `#include <(:link
+ [@#include <(:link
1
0
- -16
+ -8
2
- :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+ :)>
namespace
boost
{
(:include api pre_indent="4":)
}@]
@@ -6821,16 +6821,16 @@
3
2
- [@#include <(:link
+ `#include <(:link
1
0
- -7
+ -20
2
- :)>
namespace
boost
{
(:include api pre_indent="4":)
}@]
+ :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
@@ -6841,18 +6841,7 @@
- 3
- 2
- `#include <(:link
- 1
-
- 0
-
- -18
-
-
- 2
- :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+ 0
@@ -6873,39 +6862,6 @@
-13
-
- 0
-
-
-
-
- 0
-
- -14
-
-
-
- 0
-
-
-
-
- 0
-
- -15
-
-
-
- 0
-
-
-
-
- 0
-
- -16
-
-
3
2
@@ -6914,40 +6870,7 @@
0
- -7
-
-
- 2
- :)>
#include <boost/current_function.hpp>
#include <boost/shared_ptr.hpp>
namespace
boost
{
(:include api pre_indent="4":)
}@]
-
-
-
-
- 0
-
- -17
-
-
-
- 0
-
-
-
-
- 0
-
- -18
-
-
-
- 3
- 2
- [@#include <(:link
- 1
-
- 0
-
- -7
+ -8
2
@@ -6958,7 +6881,7 @@
0
- -19
+ -14
@@ -6969,13 +6892,81 @@
0
- -7
+ -9
+
+
+ 2
+ :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+
+
+
+
+ 0
+
+ -15
+
+
+
+ 3
+ 2
+ `#include <(:link
+ 1
+
+ 0
+
+ -8
2
:)>
[@namespace
boost
{
(:include def pre_indent="4":)
}@]
+
+
+ 0
+
+ -16
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -17
+
+
+
+ 1
+ 2
+ [@(:include api:)@]
+
+
+
+
+ 0
+
+ -18
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -19
+
+
+
+ 0
+
+
0
@@ -6986,16 +6977,16 @@
3
2
- `#include <(:link
+ [@#include <(:link
1
0
- -16
+ -8
2
- :)>
[@namespace
boost
{
(:include def pre_indent="4":)
}@]
+ :)>
#include <boost/current_function.hpp>
#include <boost/shared_ptr.hpp>
namespace
boost
{
(:include api pre_indent="4":)
}@]
@@ -7006,18 +6997,7 @@
- 3
- 2
- `#include <(:link
- 1
-
- 0
-
- -16
-
-
- 2
- :)>\\
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+ 0
@@ -7028,27 +7008,18 @@
- 5
+ 3
2
`#include <(:link
1
0
- -33
+ -20
2
- :)>
[@namespace
boost
{
(:include
- 1
-
- 0
-
- -22
-
-
- 2
- decl pre_indent="4":)
}@]
+ :)>
[@namespace
boost
{
(:include def pre_indent="4":)
}@]
@@ -7066,11 +7037,11 @@
0
- -18
+ -20
2
- :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+ :)>\\
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
@@ -7081,18 +7052,27 @@
- 3
+ 5
2
`#include <(:link
1
0
- -30
+ -34
2
- :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+ :)>
[@namespace
boost
{
(:include
+ 1
+
+ 0
+
+ -24
+
+
+ 2
+ decl pre_indent="4":)
}@]
@@ -7103,7 +7083,18 @@
- 0
+ 3
+ 2
+ `#include <(:link
+ 1
+
+ 0
+
+ -9
+
+
+ 2
+ :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
@@ -7125,7 +7116,18 @@
- 0
+ 3
+ 2
+ `#include <(:link
+ 1
+
+ 0
+
+ -31
+
+
+ 2
+ :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
@@ -7147,9 +7149,7 @@
- 1
- 2
- [@(:include api:)@]
+ 0
@@ -7159,6 +7159,17 @@
-30
+
+ 0
+
+
+
+
+ 0
+
+ -31
+
+
1
2
@@ -7169,7 +7180,7 @@
0
- -31
+ -32
@@ -7180,26 +7191,13 @@
0
- -7
+ -8
2
:)>
namespace
boost
{
(:include api pre_indent="4":)
}@]
-
-
- 0
-
- -32
-
-
-
- 1
- 2
- [@namespace
boost
{
(:include api pre_indent="4":)
}@]
-
-
0
@@ -7210,7 +7208,7 @@
1
2
- [@#include <boost/tuple/tuple.hpp>
namespace
boost
{
(:include api pre_indent="4":)
}@]
+ [@namespace
boost
{
(:include api pre_indent="4":)
}@]
@@ -7221,27 +7219,9 @@
- 5
+ 1
2
- [@#include <(:link
- 1
-
- 0
-
- -10
-
-
- 2
- :)>
#include <(:link
- 1
-
- 0
-
- -31
-
-
- 2
- :)>
#include <exception>
namespace
boost
{
(:include api pre_indent="4":)
}@]
+ [@#include <boost/tuple/tuple.hpp>
namespace
boost
{
(:include api pre_indent="4":)
}@]
@@ -7252,7 +7232,27 @@
- 0
+ 5
+ 2
+ [@#include <(:link
+ 1
+
+ 0
+
+ -13
+
+
+ 2
+ :)>
#include <(:link
+ 1
+
+ 0
+
+ -32
+
+
+ 2
+ :)>
#include <exception>
namespace
boost
{
(:include api pre_indent="4":)
}@]
@@ -7281,7 +7281,7 @@
0
- -18
+ -9
2
@@ -7303,7 +7303,7 @@
0
- -10
+ -13
2
@@ -7336,7 +7336,7 @@
0
- -31
+ -32
2
@@ -7380,7 +7380,7 @@
0
- -34
+ -35
2
@@ -7575,7 +7575,7 @@
- -14
+ -18
@@ -7616,7 +7616,7 @@
- -34
+ -35
@@ -7640,7 +7640,7 @@
- -27
+ -30
@@ -7664,7 +7664,7 @@
- -30
+ -31
@@ -7688,7 +7688,7 @@
- -15
+ -19
@@ -7712,7 +7712,7 @@
- -31
+ -32
@@ -7736,7 +7736,7 @@
- -28
+ -21
@@ -7760,7 +7760,7 @@
- -8
+ -10
@@ -7784,7 +7784,7 @@
- -10
+ -13
@@ -7808,7 +7808,7 @@
- -29
+ -17
@@ -7888,7 +7888,7 @@
- -18
+ -9
@@ -7916,7 +7916,7 @@
- -24
+ -27
@@ -7968,7 +7968,7 @@
- -7
+ -8
@@ -7992,7 +7992,7 @@
- -32
+ -33
@@ -8016,7 +8016,7 @@
- -16
+ -20
@@ -8040,7 +8040,7 @@
- -33
+ -34
@@ -8064,7 +8064,7 @@
- -12
+ -11
@@ -8088,7 +8088,7 @@
- -13
+ -16
@@ -8116,7 +8116,7 @@
- -20
+ -22
@@ -8144,7 +8144,7 @@
- -9
+ -7
@@ -8172,7 +8172,7 @@
- -21
+ -23
@@ -8200,7 +8200,7 @@
- -11
+ -14
@@ -8256,7 +8256,7 @@
- -23
+ -25
@@ -8284,7 +8284,7 @@
- -6
+ -5
@@ -8312,7 +8312,7 @@
- -5
+ -6
@@ -8340,7 +8340,7 @@
- -22
+ -24
@@ -8364,7 +8364,7 @@
- -26
+ -29
@@ -8388,7 +8388,7 @@
- -17
+ -12
@@ -8416,7 +8416,7 @@
- -19
+ -15
@@ -8452,7 +8452,7 @@
- -25
+ -28
@@ -8484,7 +8484,7 @@
- -35
+ -26
@@ -8547,7 +8547,7 @@
-5
- exception_ptr,type
+ exception_ptr,free,function,rethrow_exception
@@ -8556,7 +8556,7 @@
-6
- exception_ptr,free,function,rethrow_exception
+ exception_ptr,type
@@ -8565,7 +8565,7 @@
-7
- boost/exception/exception.hpp,exception,header
+ error_info,free,function,get_error_info
@@ -8574,7 +8574,7 @@
-8
- BOOST_ERROR_INFO,error_info,macro
+ boost/exception/exception.hpp,exception,header
@@ -8583,7 +8583,7 @@
-9
- error_info,free,function,get_error_info
+ boost/exception_ptr.hpp,exception_ptr,header
@@ -8592,7 +8592,7 @@
-10
- boost/exception/enable_current_exception.hpp,enable_current_exception,exception_ptr,header
+ BOOST_ERROR_INFO,error_info,macro
@@ -8601,7 +8601,7 @@
-11
- copy_exception,exception_ptr,free,function
+ noalso,noindex,tutorial
@@ -8619,7 +8619,7 @@
-13
- tutorial
+ boost/exception/enable_current_exception.hpp,enable_current_exception,exception_ptr,header
@@ -8628,7 +8628,7 @@
-14
- tutorial
+ copy_exception,exception_ptr,free,function
@@ -8637,7 +8637,7 @@
-15
- tutorial
+ exception,type
@@ -8646,7 +8646,7 @@
-16
- boost/exception/info.hpp,error_info,header,info
+ tutorial
@@ -8655,7 +8655,7 @@
-17
- noalso,noindex,tutorial
+ boost/exception.hpp,header
@@ -8664,7 +8664,7 @@
-18
- boost/exception_ptr.hpp,exception_ptr,header
+ tutorial
@@ -8673,7 +8673,7 @@
-19
- exception,type
+ tutorial
@@ -8682,7 +8682,7 @@
-20
- error_info,free,type
+ boost/exception/info.hpp,error_info,header,info
@@ -8691,7 +8691,7 @@
-21
- error_info,free,function,operator<<,operator<</exception
+ noalso,noindex,tutorial
@@ -8700,7 +8700,7 @@
-22
- error_info,free,function,operator<<,operator<</tuple
+ error_info,free,type
@@ -8709,7 +8709,7 @@
-23
- current_exception,exception_ptr,free,function
+ error_info,free,function,operator<<,operator<</exception
@@ -8718,7 +8718,7 @@
-24
- diagnostic_information,free,function
+ error_info,free,function,operator<<,operator<</tuple
@@ -8727,7 +8727,7 @@
-25
- exception,exception::~exception,function,member
+ current_exception,exception_ptr,free,function
@@ -8736,7 +8736,7 @@
-26
- noalso,noindex,tutorial
+ diagnostic_information,exception,exception::diagnostic_information,function,member
@@ -8745,7 +8745,7 @@
-27
- noalso,noindex,tutorial
+ diagnostic_information,free,function
@@ -8754,7 +8754,7 @@
-28
- noalso,noindex,tutorial
+ exception,exception::~exception,function,member
@@ -8763,7 +8763,7 @@
-29
- boost/exception.hpp,header
+ noalso,noindex,tutorial
@@ -8772,7 +8772,7 @@
-30
- boost/exception/diagnostic_information.hpp,diagnostic_information,header
+ noalso,noindex,tutorial
@@ -8781,7 +8781,7 @@
-31
- boost/exception/enable_error_info.hpp,enable_error_info,error_info,header
+ boost/exception/diagnostic_information.hpp,diagnostic_information,header
@@ -8790,7 +8790,7 @@
-32
- boost/exception/error_info.hpp,error_info,header
+ boost/exception/enable_error_info.hpp,enable_error_info,error_info,header
@@ -8799,7 +8799,7 @@
-33
- boost/exception/info_tuple.hpp,error_info,header,info_tuple
+ boost/exception/error_info.hpp,error_info,header
@@ -8808,7 +8808,7 @@
-34
- boost/throw_exception.hpp,header,throw_exception
+ boost/exception/info_tuple.hpp,error_info,header,info_tuple
@@ -8817,7 +8817,7 @@
-35
- diagnostic_information,exception,exception::diagnostic_information,function,member
+ boost/throw_exception.hpp,header,throw_exception