diff --git a/doc/source/boost-exception.reno b/doc/source/boost-exception.reno
index bfbd584..a3507ea 100644
--- a/doc/source/boost-exception.reno
+++ b/doc/source/boost-exception.reno
@@ -54,14 +54,63 @@
2
- E86977BC88F0D950B8FD02FC853FFC0D7230B26376B908037F3F4AF429FD9A4D
- 557160971
- 1522
+ F7633FDCF6615C0199645701EE6E7ACE5CBCD7A7CF6838573791E91ABB3C09F2
+ 1668435395
+ 1332
+ 396
+ A1F443AF571973A12005D2F7D4AE09A32AAF686FEEAE272EC21512A65EB943E8
+ 3879093659
+ 1300
+ 26
+
+
+
+
+
+ 0
+ ../../../../boost/exception/info_tuple.hpp
+ 0
+ 0
+
+
+
+
+ operator<</tuple
+
+
+
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 6
+
+ reno_context
+
+
+
+
+ 0
+
+ 8
+
+ reno_context
+
+
+
+
+
+
+ 2
+ 9A4ECF9A49A73AED83C1565CB8C67AE1519E8AFE6818F968B4C4733CB9E86CEF
+ 1615599655
+ 68
+ 227
+ 34F0583BC8DE767CE2D79721E1F956895E43E5397473B1050F59BE7E26C773DB
+ 805836816
+ 66
+ 1
+
+
+
+
+
+ 0
+ ../../../../boost/exception/error_info.hpp
+ 0
+ 0
+
+
+
+
+ boost/exception/error_info.hpp
+
+
+ exception_error_info_value_hpp
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 9
reno_context
@@ -138,7 +285,7 @@
0
- 7
+ 10
reno_context
@@ -183,7 +330,7 @@
0
- 8
+ 11
reno_context
@@ -232,7 +379,7 @@
0
- 9
+ 12
reno_context
@@ -281,7 +428,7 @@
0
- 10
+ 13
reno_context
@@ -330,7 +477,7 @@
0
- 11
+ 14
reno_context
@@ -373,56 +520,7 @@
0
- 12
-
- reno_context
-
-
-
-
-
-
- 2
- F7633FDCF6615C0199645701EE6E7ACE5CBCD7A7CF6838573791E91ABB3C09F2
- 1668435395
- 1332
- 396
- A1F443AF571973A12005D2F7D4AE09A32AAF686FEEAE272EC21512A65EB943E8
- 3879093659
- 1300
- 26
-
-
-
-
-
- 0
- ../../../../boost/exception/info_tuple.hpp
- 0
- 0
-
-
-
-
- operator<</tuple
-
-
-
-
-
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- 13
+ 15
reno_context
@@ -465,7 +563,7 @@
0
- 14
+ 16
reno_context
@@ -514,7 +612,45 @@
0
- 15
+ 17
+
+ reno_context
+
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+ transporting of arbitrary data to the catch site
+
+
+ tutorial_transporting_data
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 18
reno_context
@@ -563,7 +699,56 @@
0
- 16
+ 19
+
+ reno_context
+
+
+
+
+
+
+ 2
+ 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E
+ 4076172629
+ 8577
+ 323
+ B4D37C317A3B45825DDA1A8C8B1CE71CC2E530D15090D05995FCBEC4247F49C4
+ 2742768198
+ 258
+ 6714
+
+
+
+
+
+ 0
+ ../../../../boost/exception/exception.hpp
+ 0
+ 0
+
+
+
+
+ enable_error_info
+
+
+
+
+
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ 20
reno_context
@@ -616,7 +801,7 @@
0
- 17
+ 21
reno_context
@@ -665,7 +850,7 @@
0
- 18
+ 22
reno_context
@@ -710,7 +895,7 @@
0
- 19
+ 23
reno_context
@@ -746,7 +931,7 @@
0
- 20
+ 24
reno_context
@@ -780,7 +965,7 @@
0
- 21
+ 25
reno_context
@@ -825,32 +1010,7 @@
0
- 22
-
- reno_context
-
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
- transporting of arbitrary data to the catch site
-
-
- tutorial_transporting_data
-
-
+ -17
2
@@ -859,7 +1019,7 @@
0
- 23
+ 26
reno_context
@@ -900,7 +1060,7 @@
0
- -20
+ -24
2
@@ -909,7 +1069,7 @@
0
- -7
+ -10
2
@@ -918,7 +1078,7 @@
0
- 24
+ 27
reno_context
@@ -963,7 +1123,7 @@
0
- 25
+ 28
reno_context
@@ -1008,43 +1168,52 @@
0
- 26
-
- reno_context
-
-
-
-
-
-
- 2
- 17F10DBB69A481226D23CBBD7A897BF484EB8C5B1DC2E346E725EF0B8CE76D14
- 469421394
- 3808
- 518
- D31BCE814DF5B8B718E7EB67A194AD08EF716A26D422E436596ABA1F145007D8
- 4055211476
- 525
- 3277
-
-
-
-
-
- 0
- ../../../../boost/exception/info.hpp
- 0
- 0
-
-
-
-
- operator<</exception
-
-
-
-
-
+ -7
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -21
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -19
+
+
+ 2
+ :)
##(:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:) Transporting of Exceptions between Threads
###(:link
+ 1
+
+ 0
+
+ -16
+
+
+ 2
+ :)
###(:link
+ 1
+
+ 0
+
+ -11
2
@@ -1062,88 +1231,7 @@
0
- -17
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- 27
-
- reno_context
-
-
-
-
-
-
- 2
- 50E48ABD58B427E16B2EFA345D5FE67159057CB90F19AA1AD52C11991FD8500E
- 4076172629
- 8577
- 323
- B4D37C317A3B45825DDA1A8C8B1CE71CC2E530D15090D05995FCBEC4247F49C4
- 2742768198
- 258
- 6714
-
-
-
-
-
- 0
- ../../../../boost/exception/exception.hpp
- 0
- 0
-
-
-
-
- enable_error_info
-
-
-
-
-
-
-
- 2
- :)
##(:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:) Transporting of Exceptions between Threads
###(:link
- 1
-
- 0
-
- -14
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- -8
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- -9
-
-
- 2
- :)
###(:link
- 1
-
- 0
-
- 28
+ 29
reno_context
@@ -1188,7 +1276,7 @@
0
- -10
+ -13
2
@@ -1197,7 +1285,7 @@
0
- -15
+ -18
2
@@ -1206,7 +1294,7 @@
0
- -5
+ -6
2
@@ -1215,7 +1303,7 @@
0
- -21
+ -25
2
@@ -1224,7 +1312,7 @@
0
- 29
+ 30
reno_context
@@ -1265,7 +1353,7 @@
0
- -6
+ -9
2
@@ -1274,7 +1362,7 @@
0
- 30
+ 31
reno_context
@@ -1284,9 +1372,9 @@
1
- 86015F1EAE1BF32CF58BD22D021B7697EAF6A5B07B79CE46116046B74AAE0327
- 2401878021
- 1632
+ DB399F862FF8F7FC33944FDA379AAB5585A13C33DB71B3590F87125BC89C571E
+ 2539242395
+ 1648
323
@@ -1315,43 +1403,7 @@
0
- 31
-
- reno_context
-
-
-
-
-
-
- 2
- 9A4ECF9A49A73AED83C1565CB8C67AE1519E8AFE6818F968B4C4733CB9E86CEF
- 1615599655
- 68
- 227
- 34F0583BC8DE767CE2D79721E1F956895E43E5397473B1050F59BE7E26C773DB
- 805836816
- 66
- 1
-
-
-
-
-
- 0
- ../../../../boost/exception/error_info.hpp
- 0
- 0
-
-
-
-
- boost/exception/error_info.hpp
-
-
- exception_error_info_value_hpp
-
-
+ -8
2
@@ -1483,7 +1535,7 @@
0
- -18
+ -22
2
@@ -1608,7 +1660,7 @@
0
- -6
+ -9
2
@@ -1635,7 +1687,7 @@
0
- -18
+ -22
2
@@ -1644,7 +1696,7 @@
0
- -30
+ -31
2
@@ -1680,7 +1732,7 @@
0
- -24
+ -27
2
@@ -1689,7 +1741,7 @@
0
- -25
+ -28
2
@@ -1698,7 +1750,52 @@
0
- -26
+ -7
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -21
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -19
+
+
+ 2
+ :)
!!Transporting of Exceptions between Threads
(:include
+ 1
+
+ 0
+
+ -16
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -11
2
@@ -1716,7 +1813,7 @@
0
- -17
+ -29
2
@@ -1725,16 +1822,7 @@
0
- -27
-
-
- 2
- :)
!!Transporting of Exceptions between Threads
(:include
- 1
-
- 0
-
- -14
+ -13
2
@@ -1743,43 +1831,7 @@
0
- -8
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -9
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -28
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -10
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -15
+ -18
2
@@ -1788,7 +1840,7 @@
0
- -5
+ -6
2
@@ -1797,7 +1849,7 @@
0
- -21
+ -25
2
@@ -1808,7 +1860,72 @@
0
- -35
+ -24
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ -25
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ -30
+
+
+
+ 1
+ 2
+ (:include include:)
(:pagelist link="backlink":)
+
+
+
+
+ 0
+
+ -26
+
+
+
+ 1
+ 2
+ (:include include:)
(:auto also:)
+
+
+
+
+ 0
+
+ -27
+
+
+
+ 1
+ 2
+ (:include include:)
----
!!!See Also:
(:pagelist link="backlink" except_tags="exception,member" mod="w":)
+
+
+
+
+ 0
+
+ -28
@@ -1825,49 +1942,6 @@
reno_context
-
-
-
-
-
- 1
- E444EE9697EEADFDE0767E1D0242FC0E70D98E61FB1F0FFA099648DE509B82F3
- 94503238
- 773
- 374
-
-
-
-
-
- 0
- ../../example/info_tuple.cpp
- 0
- 0
-
-
-
-
- adding grouped data to exceptions
-
-
- grouping_data
-
-
-
-
-
- 0
-
-
-
-
- 0
-
- 39
-
- reno_context
-
@@ -1913,72 +1987,7 @@
0
- -30
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- -25
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- -23
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- -37
-
-
-
- 1
- 2
- (:auto !:)
(:pagelist fmt="index" except_tags="index,noindex" mod="w":)
-
-
-
-
- 0
-
- -36
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- -27
+ -31
@@ -1994,45 +2003,6 @@
-29
-
- 1
- 2
- (:include include:)
(:pagelist link="backlink":)
-
-
-
-
- 0
-
- -28
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- -34
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- -33
-
-
1
2
@@ -2056,7 +2026,7 @@
0
- -31
+ -33
@@ -2069,20 +2039,20 @@
0
- -24
+ -34
1
2
- (:include include:)
----
!!!See Also:
(:pagelist link="backlink" except_tags="exception,member" mod="w":)
+ (:include include:)
(:auto also:)
0
- -21
+ -35
@@ -2095,7 +2065,7 @@
0
- -20
+ -36
@@ -2104,6 +2074,62 @@
(:include include:)
(:auto also:)
+
+
+ 0
+
+ -37
+
+
+
+ 1
+ 2
+ (:auto !:)
(:pagelist fmt="index" except_tags="index,noindex" mod="w":)
+
+
+
+
+ 0
+
+ 39
+
+ reno_context
+
+
+
+
+
+
+ 1
+ E444EE9697EEADFDE0767E1D0242FC0E70D98E61FB1F0FFA099648DE509B82F3
+ 94503238
+ 773
+ 374
+
+
+
+
+
+ 0
+ ../../example/info_tuple.cpp
+ 0
+ 0
+
+
+
+
+ adding grouped data to exceptions
+
+
+ grouping_data
+
+
+
+
+
+ 0
+
+
0
@@ -2147,32 +2173,6 @@
0
-
-
- 0
-
- -22
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
-
-
- 0
-
- -26
-
-
-
- 1
- 2
- (:include include:)
(:auto also:)
-
-
0
@@ -2395,233 +2395,6 @@
0
-
-
- 0
-
- -35
-
-
-
- 0
-
-
-
-
- 0
-
- -38
-
-
-
- 0
-
-
-
-
- 0
-
- -39
-
-
-
- 0
-
-
-
-
- 0
-
- -30
-
-
-
- 0
-
-
-
-
- 0
-
- -25
-
-
-
- 3
- 2
- [@template <class Tag,class T>
class
(:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)
{
public:
typedef T value_type;
error_info( value_type const & );
};@]
-
-
-
-
- 0
-
- -23
-
-
-
- 0
-
-
-
-
- 0
-
- -37
-
-
-
- 0
-
-
-
-
- 0
-
- -36
-
-
-
- 0
-
-
-
-
- 0
-
- -27
-
-
-
- 0
-
-
-
-
- 0
-
- -29
-
-
-
- 0
-
-
-
-
- 0
-
- -28
-
-
-
- 0
-
-
-
-
- 0
-
- -34
-
-
-
- 0
-
-
-
-
- 0
-
- -33
-
-
-
- 0
-
-
-
-
- 0
-
- -32
-
-
-
- 0
-
-
-
-
- 0
-
- -31
-
-
-
- 0
-
-
-
-
- 0
-
- -24
-
-
-
- 7
- 2
- [@class
(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :)
{
protected:
(:include
- 1
-
- 0
-
- -16
-
-
- 2
- decl pre_indent="4":)
(:include
- 1
-
- 0
-
- -39
-
-
- 2
- decl pre_indent="4":)
};@]
-
-
-
-
- 0
-
- -21
-
-
-
- 0
-
-
0
@@ -2637,7 +2410,7 @@
0
- -40
+ -21
@@ -2655,6 +2428,50 @@
0
+
+
+ 0
+
+ -23
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -24
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -25
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -30
+
+
+
+ 0
+
+
0
@@ -2666,6 +2483,189 @@
0
+
+
+ 0
+
+ -27
+
+
+
+ 7
+ 2
+ [@class
(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :)
{
protected:
(:include
+ 1
+
+ 0
+
+ -20
+
+
+ 2
+ decl pre_indent="4":)
(:include
+ 1
+
+ 0
+
+ -38
+
+
+ 2
+ decl pre_indent="4":)
};@]
+
+
+
+
+ 0
+
+ -28
+
+
+
+ 3
+ 2
+ [@template <class Tag,class T>
class
(:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)
{
public:
typedef T value_type;
error_info( value_type const & );
};@]
+
+
+
+
+ 0
+
+ -38
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -31
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -29
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -32
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -33
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -34
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -35
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -36
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -37
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -39
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -40
+
+
+
+ 0
+
+
0
@@ -2709,6 +2709,50 @@
-6
+
+ 0
+
+
+
+
+ 0
+
+ -7
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -8
+
+
+
+ 3
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ decl:)@]
+
+
+
+
+ 0
+
+ -9
+
+
15
2
@@ -2717,7 +2761,7 @@
0
- -30
+ -31
2
@@ -2726,7 +2770,7 @@
0
- -31
+ -8
2
@@ -2762,7 +2806,7 @@
0
- -18
+ -22
2
@@ -2778,39 +2822,6 @@
:)>@]
-
-
- 0
-
- -7
-
-
-
- 0
-
-
-
-
- 0
-
- -8
-
-
-
- 0
-
-
-
-
- 0
-
- -9
-
-
-
- 0
-
-
0
@@ -2907,18 +2918,7 @@
- 3
- 2
- [@(:include
- 1
-
- 0
-
- -12
-
-
- 2
- decl:)@]
+ 0
@@ -2932,387 +2932,6 @@
0
-
-
- 0
-
- -35
-
-
-
- 11
- 2
- [@(:include
- 1
-
- 0
-
- -15
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -14
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -28
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -9
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -10
-
-
- 2
- decl:)@]
-
-
-
-
- 0
-
- -38
-
-
-
- 0
-
-
-
-
- 0
-
- -39
-
-
-
- 0
-
-
-
-
- 0
-
- -30
-
-
-
- 5
- 2
- [@(:include
- 1
-
- 0
-
- -24
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -5
-
-
- 2
- decl:)@]
-
-
-
-
- 0
-
- -25
-
-
-
- 0
-
-
-
-
- 0
-
- -23
-
-
-
- 0
-
-
-
-
- 0
-
- -37
-
-
-
- 0
-
-
-
-
- 0
-
- -36
-
-
-
- 5
- 2
- [@(:include
- 1
-
- 0
-
- -29
-
-
- 2
- decl:)
namespace
boost
{
(:include
- 1
-
- 0
-
- -21
-
-
- 2
- decl:)
}@]
-
-
-
-
- 0
-
- -27
-
-
-
- 0
-
-
-
-
- 0
-
- -29
-
-
-
- 0
-
-
-
-
- 0
-
- -28
-
-
-
- 0
-
-
-
-
- 0
-
- -34
-
-
-
- 5
- 2
- [@(:include
- 1
-
- 0
-
- -25
-
-
- 2
- def:)
(:include
- 1
-
- 0
-
- -26
-
-
- 2
- decl:)@]
-
-
-
-
- 0
-
- -33
-
-
-
- 3
- 2
- [@(:include
- 1
-
- 0
-
- -17
-
-
- 2
- decl:)@]
-
-
-
-
- 0
-
- -32
-
-
-
- 15
- 2
- [@(:include
- 1
-
- 0
-
- -24
-
-
- 2
- def:)
(:include
- 1
-
- 0
-
- -25
-
-
- 2
- decl:)
typedef (:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<struct tag_throw_function,char const *> throw_function;
typedef (:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<struct tag_throw_file,char const *> throw_file;
typedef (:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<struct tag_throw_line,int> throw_line;
(:include
- 1
-
- 0
-
- -27
-
-
- 2
- decl:)
(:include
- 1
-
- 0
-
- -8
-
-
- 2
- decl:)@]
-
-
-
-
- 0
-
- -31
-
-
-
- 3
- 2
- [@(:include
- 1
-
- 0
-
- -25
-
-
- 2
- decl:)@]
-
-
-
-
- 0
-
- -24
-
-
-
- 0
-
-
-
-
- 0
-
- -21
-
-
-
- 0
-
-
0
@@ -3328,7 +2947,7 @@
0
- -40
+ -21
@@ -3342,6 +2961,61 @@
-22
+
+ 3
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ decl:)@]
+
+
+
+
+ 0
+
+ -23
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -24
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -25
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -30
+
+
0
@@ -3357,6 +3031,332 @@
0
+
+
+ 0
+
+ -27
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -28
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -38
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -31
+
+
+
+ 5
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ decl:)@]
+
+
+
+
+ 0
+
+ -29
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -32
+
+
+
+ 15
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ def:)
(:include
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ decl:)
typedef (:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<struct tag_throw_function,char const *> throw_function;
typedef (:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<struct tag_throw_file,char const *> throw_file;
typedef (:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<struct tag_throw_line,int> throw_line;
(:include
+ 1
+
+ 0
+
+ -19
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -11
+
+
+ 2
+ decl:)@]
+
+
+
+
+ 0
+
+ -33
+
+
+
+ 3
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -21
+
+
+ 2
+ decl:)@]
+
+
+
+
+ 0
+
+ -34
+
+
+
+ 5
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ def:)
(:include
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ decl:)@]
+
+
+
+
+ 0
+
+ -35
+
+
+
+ 11
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -18
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -16
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -29
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -12
+
+
+ 2
+ decl:)
(:include
+ 1
+
+ 0
+
+ -13
+
+
+ 2
+ decl:)@]
+
+
+
+
+ 0
+
+ -36
+
+
+
+ 5
+ 2
+ [@(:include
+ 1
+
+ 0
+
+ -30
+
+
+ 2
+ decl:)
namespace
boost
{
(:include
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ decl:)
}@]
+
+
+
+
+ 0
+
+ -37
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -39
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -40
+
+
+
+ 0
+
+
0
@@ -3390,9 +3390,9 @@
- 5
+ 7
2
- [@std::string (:link
+ [@template <class E, class Tag1, class T1, ..., class TagN, class TN>
E const & (:link
1
0
@@ -3401,160 +3401,12 @@
2
- :)( boost::
- 1
-
- 0
-
- -24
-
-
- 2
- const & x );@]
-
-
-
-
- 0
-
- -6
-
-
-
- 0
-
-
-
-
- 0
-
- -7
-
-
-
- 0
-
-
-
-
- 0
-
- -8
-
-
-
- 3
- 2
- [@template <class T>
---unspecified--- (:link
- 1
-
- 0
-
- -8
-
-
- 2
- :)( T const & e );@]
-
-
-
-
- 0
-
- -9
-
-
-
- 5
- 2
- [@(:link
- 1
-
- 0
-
- -14
-
-
- 2
- :) (:link
- 1
-
- 0
-
- -9
-
-
- 2
- :)();@]
-
-
-
-
- 0
-
- -10
-
-
-
- 5
- 2
- [@void (:link
- 1
-
- 0
-
- -10
-
-
- 2
- :)( (:link
- 1
-
- 0
-
- -14
-
-
- 2
- :) const & ep );
-
-
-
-
- 0
-
- -11
-
-
-
- 0
-
-
-
-
- 0
-
- -12
-
-
-
- 7
- 2
- [@template <class E, class Tag1, class T1, ..., class TagN, class TN>
E const & (:link
- 1
-
- 0
-
- -12
-
-
- 2
|operator<<:)( E const & x,
(:link http://www.boost.org/libs/tuple/doc/tuple_users_guide.html|tuple:)<
(:link
1
0
- -25
+ -28
2
@@ -3563,7 +3415,7 @@
0
- -25
+ -28
2
@@ -3574,13 +3426,181 @@
0
- -13
+ -6
+
+
+
+ 5
+ 2
+ [@std::string (:link
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ :)( boost::
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ const & x );@]
+
+
+
+
+ 0
+
+ -7
+
+
+
+ 5
+ 2
+ [@template <class E, class Tag, class T>
E const & (:link
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ |operator<<:)( E const & x, (:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<Tag,T> const & v );@]
+
+
+
+
+ 0
+
+ -8
0
+
+
+ 0
+
+ -9
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -10
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -11
+
+
+
+ 3
+ 2
+ [@template <class T>
---unspecified--- (:link
+ 1
+
+ 0
+
+ -11
+
+
+ 2
+ :)( T const & e );@]
+
+
+
+
+ 0
+
+ -12
+
+
+
+ 5
+ 2
+ [@(:link
+ 1
+
+ 0
+
+ -16
+
+
+ 2
+ :) (:link
+ 1
+
+ 0
+
+ -12
+
+
+ 2
+ :)();@]
+
+
+
+
+ 0
+
+ -13
+
+
+
+ 5
+ 2
+ [@void (:link
+ 1
+
+ 0
+
+ -13
+
+
+ 2
+ :)( (:link
+ 1
+
+ 0
+
+ -16
+
+
+ 2
+ :) const & ep );
+
+
0
@@ -3589,18 +3609,7 @@
- 3
- 2
- [@typedef ---unspecified--- (:link
- 1
-
- 0
-
- -14
-
-
- 2
- :);@]
+ 0
@@ -3611,27 +3620,7 @@
- 5
- 2
- [@class
(:link
- 1
-
- 0
-
- -15
-
-
- 2
- :):
public std::exception
public boost::
- 1
-
- 0
-
- -24
-
-
- 2
-
{
---unspecified---
};@]
+ 0
@@ -3642,9 +3631,9 @@
- 7
+ 3
2
- [@(:link
+ [@typedef ---unspecified--- (:link
1
0
@@ -3653,25 +3642,7 @@
2
- mod="m":)();
(:link
- 1
-
- 0
-
- -16
-
-
- 2
- mod="m":)( (:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) const & x );@]
+ :);@]
@@ -3682,18 +3653,7 @@
- 3
- 2
- [@template <class ErrorInfo,class E>
(:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)<typename ErrorInfo::value_type const> (:link
- 1
-
- 0
-
- -17
-
-
- 2
- :)( E const & x );@]
+ 0
@@ -3704,7 +3664,27 @@
- 0
+ 5
+ 2
+ [@class
(:link
+ 1
+
+ 0
+
+ -18
+
+
+ 2
+ :):
public std::exception
public boost::
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+
{
---unspecified---
};@]
@@ -3714,85 +3694,92 @@
-19
-
- 0
-
-
-
-
- 0
-
- -35
-
-
-
- 0
-
-
-
-
- 0
-
- -38
-
-
-
- 0
-
-
-
-
- 0
-
- -39
-
-
3
2
+ [@template <class T>
---unspecified--- (:link
+ 1
+
+ 0
+
+ -19
+
+
+ 2
+ :)( T const & x );@]
+
+
+
+
+ 0
+
+ -20
+
+
+
+ 7
+ 2
[@(:link
1
0
- -39
+ -20
2
- mod="m":)();@]
+ mod="m":)();
(:link
+ 1
+
+ 0
+
+ -20
+
+
+ 2
+ mod="m":)( (:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) const & x );@]
0
- -30
-
-
-
- 0
-
-
-
-
- 0
-
- -25
+ -21
3
2
- [@template <class Tag,class T>
class (:link
+ [@template <class ErrorInfo,class E>
(:link http://www.boost.org/libs/smart_ptr/shared_ptr.htm|shared_ptr:)<typename ErrorInfo::value_type const> (:link
1
0
- -25
+ -21
2
- :);@]
+ :)( E const & x );@]
+
+
+
+
+ 0
+
+ -22
+
+
+
+ 0
@@ -3810,7 +3797,7 @@
0
- -37
+ -24
@@ -3821,40 +3808,38 @@
0
- -36
+ -25
- 0
-
-
-
-
- 0
-
- -27
-
-
-
- 3
+ 5
2
- [@template <class T>
---unspecified--- (:link
+ [@#ifdef BOOST_NO_EXCEPTIONS
void (:link
1
0
- -27
+ -25
2
- :)( T const & x );@]
+ :)( std::exception const & e ); // user defined
#else
template <class E>
void (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :)( E const & e );
#endif@]
0
- -29
+ -30
@@ -3874,7 +3859,7 @@
0
- -29
+ -30
2
@@ -3883,7 +3868,7 @@
0
- -21
+ -25
2
@@ -3892,7 +3877,7 @@
0
- -27
+ -19
2
@@ -3928,7 +3913,7 @@
0
- -29
+ -30
2
@@ -3937,13 +3922,46 @@
0
- -21
+ -25
2
(x)
#endif@]
+
+
+ 0
+
+ -26
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -27
+
+
+
+ 3
+ 2
+ [@class (:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :);@]
+
+
0
@@ -3951,6 +3969,61 @@
-28
+
+ 3
+ 2
+ [@template <class Tag,class T>
class (:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :);@]
+
+
+
+
+ 0
+
+ -38
+
+
+
+ 3
+ 2
+ [@(:link
+ 1
+
+ 0
+
+ -38
+
+
+ 2
+ mod="m":)();@]
+
+
+
+
+ 0
+
+ -31
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -29
+
+
5
2
@@ -3959,7 +4032,7 @@
0
- -14
+ -16
2
@@ -3968,7 +4041,7 @@
0
- -28
+ -29
2
@@ -3979,7 +4052,7 @@
0
- -34
+ -32
@@ -4001,7 +4074,7 @@
0
- -32
+ -34
@@ -4012,7 +4085,7 @@
0
- -31
+ -35
@@ -4023,60 +4096,29 @@
0
- -24
+ -36
- 3
- 2
- [@class (:link
- 1
-
- 0
-
- -24
-
-
- 2
- :);@]
+ 0
0
- -21
+ -37
- 5
- 2
- [@#ifdef BOOST_NO_EXCEPTIONS
void (:link
- 1
-
- 0
-
- -21
-
-
- 2
- :)( std::exception const & e ); // user defined
#else
template <class E>
void (:link
- 1
-
- 0
-
- -21
-
-
- 2
- :)( E const & e );
#endif@]
+ 0
0
- -20
+ -39
@@ -4094,48 +4136,6 @@
0
-
-
- 0
-
- -22
-
-
-
- 0
-
-
-
-
- 0
-
- -26
-
-
-
- 5
- 2
- [@template <class E, class Tag, class T>
E const & (:link
- 1
-
- 0
-
- -26
-
-
- 2
- |operator<<:)( E const & x, (:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<Tag,T> const & v );@]
-
-
0
@@ -4168,6 +4168,37 @@
-5
+
+ 5
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must be boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :), or a type that derives (indirectly) from boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 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
+
+ -6
+
+
7
2
@@ -4176,7 +4207,7 @@
0
- -24
+ -27
2
@@ -4185,7 +4216,7 @@
0
- -26
+ -7
2
@@ -4194,7 +4225,7 @@
0
- -25
+ -28
2
@@ -4205,7 +4236,47 @@
0
- -6
+ -7
+
+
+
+ 7
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must be boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :), or a type that derives (indirectly) from boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :).
!!!!Effects:
Stores a copy of v into x. If x already contains data of type (:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<Tag,T>, that data is overwritten.
!!!!Returns:
x.
(:include throws:)
+
+
+
+
+ 0
+
+ -8
@@ -4218,7 +4289,20 @@
0
- -7
+ -9
+
+
+
+ 1
+ 2
+ (:auto !!:)
!!!Synopsis
(:include synopsis:)
+
+
+
+
+ 0
+
+ -10
@@ -4229,7 +4313,7 @@
0
- -5
+ -6
2
@@ -4238,7 +4322,7 @@
0
- -24
+ -27
2
@@ -4247,7 +4331,7 @@
0
- -24
+ -27
2
@@ -4256,7 +4340,7 @@
0
- -26
+ -7
2
@@ -4265,7 +4349,7 @@
0
- -6
+ -9
2
@@ -4274,7 +4358,7 @@
0
- -24
+ -27
2
@@ -4283,7 +4367,7 @@
0
- -24
+ -27
2
@@ -4292,7 +4376,7 @@
0
- -5
+ -6
2
@@ -4303,7 +4387,7 @@
0
- -8
+ -11
@@ -4314,7 +4398,7 @@
0
- -14
+ -16
2
@@ -4323,7 +4407,7 @@
0
- -8
+ -11
2
@@ -4332,7 +4416,7 @@
0
- -8
+ -11
2
@@ -4341,7 +4425,7 @@
0
- -9
+ -12
2
@@ -4350,7 +4434,7 @@
0
- -14
+ -16
2
@@ -4359,7 +4443,7 @@
0
- -15
+ -18
2
@@ -4368,7 +4452,7 @@
0
- -9
+ -12
2
@@ -4377,7 +4461,7 @@
0
- -21
+ -25
2
@@ -4386,7 +4470,7 @@
0
- -24
+ -27
2
@@ -4395,7 +4479,7 @@
0
- -14
+ -16
2
@@ -4406,7 +4490,7 @@
0
- -9
+ -12
@@ -4417,7 +4501,7 @@
0
- -9
+ -12
2
@@ -4426,7 +4510,7 @@
0
- -14
+ -16
2
@@ -4435,7 +4519,7 @@
0
- -14
+ -16
2
@@ -4444,7 +4528,7 @@
0
- -9
+ -12
2
@@ -4453,7 +4537,7 @@
0
- -9
+ -12
2
@@ -4462,7 +4546,7 @@
0
- -8
+ -11
2
@@ -4471,7 +4555,7 @@
0
- -8
+ -11
2
@@ -4480,7 +4564,7 @@
0
- -9
+ -12
2
@@ -4489,7 +4573,7 @@
0
- -14
+ -16
2
@@ -4498,7 +4582,7 @@
0
- -15
+ -18
2
@@ -4507,7 +4591,7 @@
0
- -24
+ -27
2
@@ -4516,7 +4600,7 @@
0
- -24
+ -27
2
@@ -4525,7 +4609,7 @@
0
- -15
+ -18
2
@@ -4534,7 +4618,7 @@
0
- -24
+ -27
2
@@ -4545,7 +4629,7 @@
0
- -10
+ -13
@@ -4558,7 +4642,7 @@
0
- -11
+ -14
@@ -4578,7 +4662,7 @@
0
- -24
+ -27
2
@@ -4587,7 +4671,7 @@
0
- -8
+ -11
2
@@ -4596,7 +4680,7 @@
0
- -8
+ -11
2
@@ -4605,232 +4689,13 @@
0
- -24
+ -27
2
:).
-
-
- 0
-
- -12
-
-
-
- 5
- 2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must be boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :), or a type that derives (indirectly) from boost::(:link
- 1
-
- 0
-
- -24
-
-
- 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
-
- -13
-
-
-
- 21
- 2
- (:auto !!!:)
Sometimes the throw site does not have all the information that is needed at the catch site to make sense of what went wrong. Here is an example:
[@#include <stdio.h>
#include <string>
class
file_read_error
{
public:
explicit
file_read_error( std::string const & fn ):
fn_(fn)
{
};
std::string const &
file_name() const
{
return fn_;
}
private:
std::string fn_;
};
void
file_read( FILE * f, void * buffer, size_t size )
{
if( size!=fread(buffer,1,size,f) )
throw file_read_error("????");
}@]
We have defined an exception class file_read_error which can store a file name, so that when we catch a file_read_error object, we know which file the failure is related to. However, the file_read function does not have the file name at the time of the throw; all it has is a FILE handle.
One possible solution is to not use FILE handles directly. We could have our own class file which stores both a FILE handle and a file name, and pass that to file_read. However, this could be problematic if we communicate with 3rd party code that does not use our class file (probably because they have their own similar class.)
A better solution is to make class file_read_error derive (possibly indirectly) from boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :), and free the file_read function from the burden of storing the file name in exceptions it throws:
[@#include <(:link
- 1
-
- 0
-
- -6
-
-
- 2
- :)>
#include <stdio.h>
#include <errno.h>
typedef boost::(:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<struct tag_errno,int> errno_info;
class file_read_error: public boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) { };
void
file_read( FILE * f, void * buffer, size_t size )
{
if( size!=fread(buffer,1,size,f) )
throw file_read_error() << errno_info(errno);
}@]
If file_read detects a failure, it throws an exception which contains the information that is available at the time, namely the errno. Other relevant information, such as the file name, can be added in a context higher up the call stack, where it is known naturally:
[@#include <(:link
- 1
-
- 0
-
- -6
-
-
- 2
- :)>
#include <boost/shared_ptr.hpp>
#include <stdio.h>
#include <string>
typedef boost::(:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<struct tag_file_name,std::string> file_name_info;
boost::shared_ptr<FILE> file_open( char const * file_name, char const * mode );
void file_read( FILE * f, void * buffer, size_t size );
void
parse_file( char const * file_name )
{
boost::shared_ptr<FILE> f = file_open(file_name,"rb");
assert(f);
try
{
char buf[1024];
file_read( f.get(), buf, sizeof(buf) );
}
catch(
boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) & e )
{
e << file_name_info(file_name);
throw;
}
}@]
The above function is (almost) exception-neutral -- if an exception is emitted by any function call within the try block, parse_file does not need to do any real work, but it intercepts any boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) object, stores the file name, and re-throws using a throw-expression with no operand (15.1.6). The rationale for catching any boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) object is that the file name is relevant to any failure that occurs in parse_file, ''even if the failure is unrelated to file I/O''.
As usual, the stored data can be retrieved using (:link
- 1
-
- 0
-
- -17
-
-
- 2
- :).
-
-
-
-
- 0
-
- -14
-
-
-
- 17
- 2
- (:auto !!!:)
(:include synopsis:)
The (:link
- 1
-
- 0
-
- -14
-
-
- 2
- :) type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; (:link
- 1
-
- 0
-
- -14
-
-
- 2
- :)'s operations do not throw.
Two instances of (:link
- 1
-
- 0
-
- -14
-
-
- 2
- :) are equivalent and compare equal if and only if they refer to the same exception.
The default constructor of (:link
- 1
-
- 0
-
- -14
-
-
- 2
- :) produces the null value of the type. The null value is equivalent only to itself.
!!!!Thread safety
* It is legal for multiple threads to hold (:link
- 1
-
- 0
-
- -14
-
-
- 2
- :) references to the same exception object.
* It is illegal for multiple threads to modify the same (:link
- 1
-
- 0
-
- -14
-
-
- 2
- :) object concurrently.
* While calling (:link
- 1
-
- 0
-
- -9
-
-
- 2
- :) makes a copy of the current exception object, it is still possible for the two copies to share internal state. Therefore, in general it is not safe to call (:link
- 1
-
- 0
-
- -10
-
-
- 2
- :) concurrently to throw the same exception object into multiple threads.
-
-
0
@@ -4839,18 +4704,18 @@
- 5
+ 21
2
- (:auto !!!:)
(:include synopsis:)
This type is used by the (:link
+ (:auto !!!:)
Sometimes the throw site does not have all the information that is needed at the catch site to make sense of what went wrong. Here is an example:
[@#include <stdio.h>
#include <string>
class
file_read_error
{
public:
explicit
file_read_error( std::string const & fn ):
fn_(fn)
{
};
std::string const &
file_name() const
{
return fn_;
}
private:
std::string fn_;
};
void
file_read( FILE * f, void * buffer, size_t size )
{
if( size!=fread(buffer,1,size,f) )
throw file_read_error("????");
}@]
We have defined an exception class file_read_error which can store a file name, so that when we catch a file_read_error object, we know which file the failure is related to. However, the file_read function does not have the file name at the time of the throw; all it has is a FILE handle.
One possible solution is to not use FILE handles directly. We could have our own class file which stores both a FILE handle and a file name, and pass that to file_read. However, this could be problematic if we communicate with 3rd party code that does not use our class file (probably because they have their own similar class.)
A better solution is to make class file_read_error derive (possibly indirectly) from boost::(:link
1
0
- -14
+ -27
2
- :) support in Boost Exception. Please see (:link
+ :), and free the file_read function from the burden of storing the file name in exceptions it throws:
[@#include <(:link
1
0
@@ -4859,6 +4724,78 @@
2
+ :)>
#include <stdio.h>
#include <errno.h>
typedef boost::(:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<struct tag_errno,int> errno_info;
class file_read_error: public boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) { };
void
file_read( FILE * f, void * buffer, size_t size )
{
if( size!=fread(buffer,1,size,f) )
throw file_read_error() << errno_info(errno);
}@]
If file_read detects a failure, it throws an exception which contains the information that is available at the time, namely the errno. Other relevant information, such as the file name, can be added in a context higher up the call stack, where it is known naturally:
[@#include <(:link
+ 1
+
+ 0
+
+ -9
+
+
+ 2
+ :)>
#include <boost/shared_ptr.hpp>
#include <stdio.h>
#include <string>
typedef boost::(:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<struct tag_file_name,std::string> file_name_info;
boost::shared_ptr<FILE> file_open( char const * file_name, char const * mode );
void file_read( FILE * f, void * buffer, size_t size );
void
parse_file( char const * file_name )
{
boost::shared_ptr<FILE> f = file_open(file_name,"rb");
assert(f);
try
{
char buf[1024];
file_read( f.get(), buf, sizeof(buf) );
}
catch(
boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) & e )
{
e << file_name_info(file_name);
throw;
}
}@]
The above function is (almost) exception-neutral -- if an exception is emitted by any function call within the try block, parse_file does not need to do any real work, but it intercepts any boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) object, stores the file name, and re-throws using a throw-expression with no operand (15.1.6). The rationale for catching any boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) object is that the file name is relevant to any failure that occurs in parse_file, ''even if the failure is unrelated to file I/O''.
As usual, the stored data can be retrieved using (:link
+ 1
+
+ 0
+
+ -21
+
+
+ 2
:).
@@ -4870,36 +4807,81 @@
- 7
+ 17
2
- (:auto !!!:)
(:include decl:)
!!!!Effects:
* Default constructor: initializes an empty boost::(:link
+ (:auto !!!:)
(:include synopsis:)
The (:link
1
0
- -24
+ -16
2
- :) object.
* Copy constructor: initializes a boost::(:link
+ :) 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
- -24
+ -16
2
- :) object which shares ownership with x of all data added through (:link
+ :)'s operations do not throw.
Two instances of (:link
1
0
- -26
+ -16
2
- |operator<<:), including data that is added at a future time.
!!!!Throws:
Nothing.
+ :) are equivalent and compare equal if and only if they refer to the same exception.
The default constructor of (:link
+ 1
+
+ 0
+
+ -16
+
+
+ 2
+ :) produces the null value of the type. The null value is equivalent only to itself.
!!!!Thread safety
* It is legal for multiple threads to hold (:link
+ 1
+
+ 0
+
+ -16
+
+
+ 2
+ :) references to the same exception object.
* It is illegal for multiple threads to modify the same (:link
+ 1
+
+ 0
+
+ -16
+
+
+ 2
+ :) object concurrently.
* While calling (:link
+ 1
+
+ 0
+
+ -12
+
+
+ 2
+ :) makes a copy of the current exception object, it is still possible for the two copies to share internal state. Therefore, in general it is not safe to call (:link
+ 1
+
+ 0
+
+ -13
+
+
+ 2
+ :) concurrently to throw the same exception object into multiple threads.
@@ -4910,45 +4892,54 @@
- 9
+ 11
2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
* ErrorInfo must be an instance of the (:link
+ (:auto !!:)
All exception types that derive from boost::(:link
1
0
- -25
+ -27
2
- :) template.
* E must be polymorphic.
* The
+ :) 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. Data can be added to a boost::(:link
1
0
- -17
+ -27
2
- function must not be called outside of a catch block.
!!!!Returns:
* If dynamic_cast<boost::(:link
+ :) at the time of the throw, or at a later time.
(:include
1
0
- -24
+ -41
2
- :) const *>(&x) is 0, or if x does not store an object of type ErrorInfo, the returned value is an empty shared_ptr.
* Otherwise, the returned shared_ptr points to the stored value (use (:link
+ :)
(:include
1
0
- -26
+ -15
2
- |operator<<:) to store values in exception objects.) The shared_ptr is valid even after x has been destroyed.
!!!!Throws:
Nothing.
+ :)
(:include
+ 1
+
+ 0
+
+ -39
+
+
+ 2
+ :)
@@ -4959,96 +4950,23 @@
- 1
+ 5
2
- (:auto !!:)
!!!Synopsis
(:include synopsis:)
-
-
-
-
- 0
-
- -19
-
-
-
- 0
-
-
-
-
- 0
-
- -35
-
-
-
- 1
- 2
- (:auto !!:)
!!!Synopsis
(:include synopsis:)
-
-
-
-
- 0
-
- -38
-
-
-
- 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
+ (:auto !!!:)
(:include synopsis:)
This type is used by the (:link
1
0
- -18
+ -16
2
- :)>
#include <boost/shared_ptr.hpp>
#include <stdio.h>
#include <string>
#include <errno.h>
typedef boost::(:link
+ :) support in Boost Exception. Please see (:link
1
0
- -25
-
-
- 2
- :)<struct tag_file_name,std::string> file_name_info;
typedef boost::(:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<struct tag_function,char const *> function_info;
typedef boost::(:link
- 1
-
- 0
-
- -25
-
-
- 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
-
- -24
-
-
- 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
-
- -17
+ -12
2
@@ -5059,29 +4977,127 @@
0
- -39
+ -19
- 3
+ 5
2
- (:auto !!!:)
(:include decl:)
!!!!Effects:
Frees all resources associated with a boost::(:link
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
T must be a class with an accessible no-throw copy constructor as per (15.5.1).
!!!!Returns:
* If T derives from boost::(:link
1
0
- -24
+ -27
2
- :) object.
!!!!Throws:
Nothing.
+ :), the returned object is of type T and is a copy of x.
* Otherwise, the returned object is of an unspecified type that derives publicly from both T and boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :). The T sub-object is initialized from x by the T copy constructor.
!!!!Throws:
Nothing.
0
- -30
+ -20
+
+
+
+ 7
+ 2
+ (:auto !!!:)
(:include decl:)
!!!!Effects:
* Default constructor: initializes an empty boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) object.
* Copy constructor: initializes a boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) object which shares ownership with x of all data added through (:link
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ |operator<<:), including data that is added at a future time.
!!!!Throws:
Nothing.
+
+
+
+
+ 0
+
+ -21
+
+
+
+ 9
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
* ErrorInfo must be an instance of the (:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :) template.
* E must be polymorphic.
* The
+ 1
+
+ 0
+
+ -21
+
+
+ 2
+ function must not be called outside of a catch block.
!!!!Returns:
* If dynamic_cast<boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) const *>(&x) is 0, or if x does not store an object of type ErrorInfo, the returned value is an empty shared_ptr.
* Otherwise, the returned shared_ptr points to the stored value (use (:link
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ |operator<<:) to store values in exception objects.) The shared_ptr is valid even after x has been destroyed.
!!!!Throws:
Nothing.
+
+
+
+
+ 0
+
+ -22
@@ -5090,6 +5106,75 @@
(:auto !!:)
!!!Synopsis
(:include synopsis:)
+
+
+ 0
+
+ -23
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -24
+
+
+
+ 11
+ 2
+ (:auto !!:)
Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to (:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:), but because Boost Exception can not rely on language support, the use of (:link
+ 1
+
+ 0
+
+ -11
+
+
+ 2
+ :) at the time of the throw is required in order to use cloning.
!!!!Note:
All exceptions emitted by the familiar function boost::(:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) are guaranteed to derive from boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) and to support cloning.
(:include
+ 1
+
+ 0
+
+ -14
+
+
+ 2
+ :)
(:include
+ 1
+
+ 0
+
+ -40
+
+
+ 2
+ :)
+
+
0
@@ -5097,6 +5182,310 @@
-25
+
+ 13
+ 2
+ (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must derive publicly from std::exception.
!!!!Effects:
* If BOOST_NO_EXCEPTIONS is not defined, boost::(:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :)(e) is equivalent to throw boost::(:link
+ 1
+
+ 0
+
+ -11
+
+
+ 2
+ :)(boost::(:link
+ 1
+
+ 0
+
+ -19
+
+
+ 2
+ :)(e)), unless BOOST_EXCEPTION_DISABLE is defined, in which case boost::(:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :)(e) is equivalent to throw e;
* If BOOST_NO_EXCEPTIONS is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) are allowed to assume that the function never returns; therefore, if the user-defined (:link
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ :) returns, the behavior is undefined.
+
+
+
+
+ 0
+
+ -30
+
+
+
+ 7
+ 2
+ (:auto !!!:)
(:include synopsis:)
This macro takes an exception object, records BOOST_CURRENT_FUNCTION, __FILE__ and __LINE__ in it, and forwards it to
+ 1
+
+ 0
+
+ -25
+
+
+ 2
+ . To recover this information at the catch site, use
+ 1
+
+ 0
+
+ -21
+
+
+ 2
+ ; the information is also included in the message returned by
+ 1
+
+ 0
+
+ -6
+
+
+ 2
+ .
+
+
+
+
+ 0
+
+ -26
+
+
+
+ 27
+ 2
+ (:auto !!:)
Some exception hierarchies can not be modified to make boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) a base type. In this case, the (:link
+ 1
+
+ 0
+
+ -19
+
+
+ 2
+ :) function template can be used to make exception objects derive from boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) anyway. Here is an example:
[@#include <(:link
+ 1
+
+ 0
+
+ -9
+
+
+ 2
+ :)>
#include <stdexcept>
typedef boost::(:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<struct tag_std_range_min,size_t> std_range_min;
typedef boost::(:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<struct tag_std_range_max,size_t> std_range_max;
typedef boost::(:link
+ 1
+
+ 0
+
+ -28
+
+
+ 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
+
+ -19
+
+
+ 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
+
+ -19
+
+
+ 2
+ :)<T> gets us an object of ''unspecified type'' which is guaranteed to derive from both boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) and T. This makes it possible to use (:link
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ |operator<<:) 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
+
+ -27
+
+
+ 2
+ :) &, so that (:link
+ 1
+
+ 0
+
+ -17
+
+
+ 2
+ |more information can be added to the exception at a later time:).
+
+
+
+
+ 0
+
+ -27
+
+
+
+ 13
+ 2
+ (:auto !!!:)
(:include synopsis:)
Class boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 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
+
+ -27
+
+
+ 2
+ :) can store data of arbitrary types, using the (:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :) wrapper and (:link
+ 1
+
+ 0
+
+ -7
+
+
+ 2
+ |operator<<:).
To retrieve data from a boost::(:link
+ 1
+
+ 0
+
+ -27
+
+
+ 2
+ :) object, use the (:link
+ 1
+
+ 0
+
+ -21
+
+
+ 2
+ :) function template.
+
+
+
+
+ 0
+
+ -28
+
+
25
2
@@ -5105,7 +5494,7 @@
0
- -25
+ -28
2
@@ -5114,7 +5503,7 @@
0
- -26
+ -7
2
@@ -5123,7 +5512,7 @@
0
- -24
+ -27
2
@@ -5132,7 +5521,7 @@
0
- -31
+ -8
2
@@ -5141,7 +5530,7 @@
0
- -25
+ -28
2
@@ -5150,7 +5539,7 @@
0
- -31
+ -8
2
@@ -5159,7 +5548,7 @@
0
- -25
+ -28
2
@@ -5168,7 +5557,7 @@
0
- -25
+ -28
2
@@ -5177,7 +5566,7 @@
0
- -24
+ -27
2
@@ -5186,7 +5575,7 @@
0
- -26
+ -7
2
@@ -5195,7 +5584,7 @@
0
- -17
+ -21
2
@@ -5215,22 +5604,13 @@
0
- -23
+ -38
- 27
+ 3
2
- (:auto !!:)
Some exception hierarchies can not be modified to make boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) a base type. In this case, the (:link
+ (:auto !!!:)
(:include decl:)
!!!!Effects:
Frees all resources associated with a boost::(:link
1
0
@@ -5239,124 +5619,14 @@
2
- :) function template can be used to make exception objects derive from boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) anyway. Here is an example:
[@#include <(:link
- 1
-
- 0
-
- -6
-
-
- 2
- :)>
#include <stdexcept>
typedef boost::(:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<struct tag_std_range_min,size_t> std_range_min;
typedef boost::(:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<struct tag_std_range_max,size_t> std_range_max;
typedef boost::(:link
- 1
-
- 0
-
- -25
-
-
- 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
-
- -27
-
-
- 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
-
- -27
-
-
- 2
- :)<T> gets us an object of ''unspecified type'' which is guaranteed to derive from both boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) and T. This makes it possible to use (:link
- 1
-
- 0
-
- -26
-
-
- 2
- |operator<<:) 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
-
- -24
-
-
- 2
- :) &, so that (:link
- 1
-
- 0
-
- -22
-
-
- 2
- |more information can be added to the exception at a later time:).
+ :) object.
!!!!Throws:
Nothing.
0
- -37
-
-
-
- 0
-
-
-
-
- 0
-
- -36
+ -31
@@ -5365,37 +5635,6 @@
(:auto !!:)
!!!Synopsis
(:include synopsis:)
-
-
- 0
-
- -27
-
-
-
- 5
- 2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
T must be a class with an accessible no-throw copy constructor as per (15.5.1).
!!!!Returns:
* If T derives from boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :), the returned object is of type T and is a copy of x.
* Otherwise, the returned object is of an unspecified type that derives publicly from both T and boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :). The T sub-object is initialized from x by the T copy constructor.
!!!!Throws:
Nothing.
-
-
0
@@ -5403,46 +5642,6 @@
-29
-
- 7
- 2
- (:auto !!!:)
(:include synopsis:)
This macro takes an exception object, records BOOST_CURRENT_FUNCTION, __FILE__ and __LINE__ in it, and forwards it to
- 1
-
- 0
-
- -21
-
-
- 2
- . To recover this information at the catch site, use
- 1
-
- 0
-
- -17
-
-
- 2
- ; the information is also included in the message returned by
- 1
-
- 0
-
- -5
-
-
- 2
- .
-
-
-
-
- 0
-
- -28
-
-
5
2
@@ -5451,7 +5650,7 @@
0
- -8
+ -11
2
@@ -5460,7 +5659,7 @@
0
- -9
+ -12
2
@@ -5471,7 +5670,7 @@
0
- -34
+ -32
@@ -5497,7 +5696,7 @@
0
- -32
+ -34
@@ -5510,7 +5709,7 @@
0
- -31
+ -35
@@ -5523,98 +5722,73 @@
0
- -24
+ -36
- 13
+ 1
2
- (:auto !!!:)
(:include synopsis:)
Class boost::(:link
- 1
-
- 0
-
- -24
-
-
- 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
-
- -24
-
-
- 2
- :) can store data of arbitrary types, using the (:link
- 1
-
- 0
-
- -25
-
-
- 2
- :) wrapper and (:link
- 1
-
- 0
-
- -26
-
-
- 2
- |operator<<:).
To retrieve data from a boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) object, use the (:link
- 1
-
- 0
-
- -17
-
-
- 2
- :) function template.
+ (:auto !!:)
!!!Synopsis
(:include synopsis:)
0
- -21
+ -37
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -39
13
2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must derive publicly from std::exception.
!!!!Effects:
* If BOOST_NO_EXCEPTIONS is not defined, boost::(:link
+ (: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
- -21
+ -22
2
- :)(e) is equivalent to throw boost::(:link
+ :)>
#include <boost/shared_ptr.hpp>
#include <stdio.h>
#include <string>
#include <errno.h>
typedef boost::(:link
1
0
- -8
+ -28
2
- :)(boost::(:link
+ :)<struct tag_file_name,std::string> file_name_info;
typedef boost::(:link
+ 1
+
+ 0
+
+ -28
+
+
+ 2
+ :)<struct tag_function,char const *> function_info;
typedef boost::(:link
+ 1
+
+ 0
+
+ -28
+
+
+ 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
@@ -5623,7 +5797,7 @@
2
- :)(e)), unless BOOST_EXCEPTION_DISABLE is defined, in which case boost::(:link
+ :) { };
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
@@ -5632,83 +5806,7 @@
2
- :)(e) is equivalent to throw e;
* If BOOST_NO_EXCEPTIONS is defined, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of (:link
- 1
-
- 0
-
- -21
-
-
- 2
- :) are allowed to assume that the function never returns; therefore, if the user-defined (:link
- 1
-
- 0
-
- -21
-
-
- 2
- :) returns, the behavior is undefined.
-
-
-
-
- 0
-
- -20
-
-
-
- 11
- 2
- (:auto !!:)
Boost Exception supports transporting of exception objects between threads through cloning. This system is similar to (:link http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html|N2179:), but because Boost Exception can not rely on language support, the use of (:link
- 1
-
- 0
-
- -8
-
-
- 2
- :) at the time of the throw is required in order to use cloning.
!!!!Note:
All exceptions emitted by the familiar function boost::(:link
- 1
-
- 0
-
- -21
-
-
- 2
- :) are guaranteed to derive from boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) and to support cloning.
(:include
- 1
-
- 0
-
- -11
-
-
- 2
- :)
(:include
- 1
-
- 0
-
- -40
-
-
- 2
- :)
+ :).
@@ -5726,7 +5824,7 @@
0
- -9
+ -12
2
@@ -5735,7 +5833,7 @@
0
- -14
+ -16
2
@@ -5753,7 +5851,7 @@
0
- -24
+ -27
2
@@ -5762,7 +5860,7 @@
0
- -14
+ -16
2
@@ -5771,7 +5869,7 @@
0
- -14
+ -16
2
@@ -5780,7 +5878,7 @@
0
- -9
+ -12
2
@@ -5789,7 +5887,7 @@
0
- -9
+ -12
2
@@ -5798,7 +5896,7 @@
0
- -10
+ -13
2
@@ -5807,7 +5905,7 @@
0
- -14
+ -16
2
@@ -5816,7 +5914,7 @@
0
- -10
+ -13
2
@@ -5825,7 +5923,7 @@
0
- -9
+ -12
2
@@ -5834,7 +5932,7 @@
0
- -14
+ -16
2
@@ -5843,7 +5941,7 @@
0
- -8
+ -11
2
@@ -5852,7 +5950,7 @@
0
- -14
+ -16
2
@@ -5861,7 +5959,7 @@
0
- -15
+ -18
2
@@ -5870,61 +5968,12 @@
0
- -9
+ -12
2
:) and (:link
1
-
- 0
-
- -10
-
-
- 2
- :) in the above examples is well-formed.
-
-
-
-
- 0
-
- -22
-
-
-
- 11
- 2
- (:auto !!:)
All exception types that derive from boost::(:link
- 1
-
- 0
-
- -24
-
-
- 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. Data can be added to a boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :) at the time of the throw, or at a later time.
(:include
- 1
-
- 0
-
- -41
-
-
- 2
- :)
(:include
- 1
0
@@ -5932,56 +5981,7 @@
2
- :)
(:include
- 1
-
- 0
-
- -38
-
-
- 2
- :)
-
-
-
-
- 0
-
- -26
-
-
-
- 7
- 2
- (:auto !!!:)
(:include synopsis:)
!!!!Requirements:
E must be boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :), or a type that derives (indirectly) from boost::(:link
- 1
-
- 0
-
- -24
-
-
- 2
- :).
!!!!Effects:
Stores a copy of v into x. If x already contains data of type (:link
- 1
-
- 0
-
- -25
-
-
- 2
- :)<Tag,T>, that data is overwritten.
!!!!Returns:
x.
(:include throws:)
+ :) in the above examples is well-formed.
@@ -5999,7 +5999,7 @@
0
- -6
+ -9
2
@@ -6008,7 +6008,7 @@
0
- -25
+ -28
2
@@ -6017,7 +6017,7 @@
0
- -24
+ -27
2
@@ -6026,7 +6026,7 @@
0
- -25
+ -28
2
@@ -6035,7 +6035,7 @@
0
- -24
+ -27
2
@@ -6044,7 +6044,7 @@
0
- -26
+ -7
2
@@ -6053,7 +6053,7 @@
0
- -17
+ -21
2
@@ -6062,7 +6062,7 @@
0
- -17
+ -21
2
@@ -6091,7 +6091,9 @@
- 0
+ 1
+ 2
+ !!!!Throws:
std::bad_alloc, or any exception emitted by T1..TN copy constructor.
@@ -6113,7 +6115,9 @@
- 0
+ 1
+ 2
+ !!!!Throws:
std::bad_alloc, or any exception emitted by the T copy constructor.
@@ -6168,9 +6172,7 @@
- 1
- 2
- !!!!Throws:
std::bad_alloc, or any exception emitted by T1..TN copy constructor.
+ 0
@@ -6254,172 +6256,7 @@
0
- -35
-
-
-
- 0
-
-
-
-
- 0
-
- -38
-
-
-
- 0
-
-
-
-
- 0
-
- -39
-
-
-
- 0
-
-
-
-
- 0
-
- -30
-
-
-
- 0
-
-
-
-
- 0
-
- -25
-
-
-
- 0
-
-
-
-
- 0
-
- -23
-
-
-
- 0
-
-
-
-
- 0
-
- -37
-
-
-
- 0
-
-
-
-
- 0
-
- -36
-
-
-
- 0
-
-
-
-
- 0
-
- -27
-
-
-
- 0
-
-
-
-
- 0
-
- -29
-
-
-
- 0
-
-
-
-
- 0
-
- -28
-
-
-
- 0
-
-
-
-
- 0
-
- -34
-
-
-
- 0
-
-
-
-
- 0
-
- -33
-
-
-
- 0
-
-
-
-
- 0
-
- -32
-
-
-
- 0
-
-
-
-
- 0
-
- -31
-
-
-
- 0
-
-
-
-
- 0
-
- -24
+ -20
@@ -6441,7 +6278,194 @@
0
- -20
+ -22
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -23
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -24
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -25
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -30
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -26
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -27
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -28
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -38
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -31
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -29
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -32
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -33
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -34
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -35
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -36
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -37
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -39
@@ -6459,30 +6483,6 @@
0
-
-
- 0
-
- -22
-
-
-
- 0
-
-
-
-
- 0
-
- -26
-
-
-
- 1
- 2
- !!!!Throws:
std::bad_alloc, or any exception emitted by the T copy constructor.
-
-
0
@@ -6515,6 +6515,37 @@
-5
+
+ 5
+ 2
+ `#include <(:link
+ 1
+
+ 0
+
+ -22
+
+
+ 2
+ :)>
[@namespace
boost
{
(:include
+ 1
+
+ 0
+
+ -5
+
+
+ 2
+ decl pre_indent="4":)
}@]
+
+
+
+
+ 0
+
+ -6
+
+
3
2
@@ -6523,7 +6554,7 @@
0
- -30
+ -31
2
@@ -6534,7 +6565,42 @@
0
- -6
+ -7
+
+
+
+ 3
+ 2
+ `#include <(:link
+ 1
+
+ 0
+
+ -34
+
+
+ 2
+ :)>\\
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+
+
+
+
+ 0
+
+ -8
+
+
+
+ 1
+ 2
+ [@namespace
boost
{
(:include api pre_indent="4":)
}@]
+
+
+
+
+ 0
+
+ -9
@@ -6547,7 +6613,7 @@
0
- -7
+ -10
@@ -6558,7 +6624,7 @@
0
- -8
+ -11
@@ -6576,61 +6642,6 @@
>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
-
-
- 0
-
- -9
-
-
-
- 3
- 2
- `#include <(:link
- 1
-
- 0
-
- -35
-
-
- 2
- :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
-
-
-
-
- 0
-
- -10
-
-
-
- 3
- 2
- `#include <(:link
- 1
-
- 0
-
- -35
-
-
- 2
- :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
-
-
-
-
- 0
-
- -11
-
-
-
- 0
-
-
0
@@ -6639,27 +6650,18 @@
- 5
+ 3
2
`#include <(:link
1
0
- -18
+ -35
2
- :)>
[@namespace
boost
{
(:include
- 1
-
- 0
-
- -12
-
-
- 2
- decl pre_indent="4":)
}@]
+ :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
@@ -6670,7 +6672,18 @@
- 0
+ 3
+ 2
+ `#include <(:link
+ 1
+
+ 0
+
+ -35
+
+
+ 2
+ :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
@@ -6681,18 +6694,7 @@
- 3
- 2
- `#include <(:link
- 1
-
- 0
-
- -35
-
-
- 2
- :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+ 0
@@ -6702,6 +6704,17 @@
-15
+
+ 0
+
+
+
+
+ 0
+
+ -16
+
+
3
2
@@ -6721,7 +6734,7 @@
0
- -16
+ -17
@@ -6732,7 +6745,62 @@
0
- -17
+ -18
+
+
+
+ 3
+ 2
+ `#include <(:link
+ 1
+
+ 0
+
+ -35
+
+
+ 2
+ :)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+
+
+
+
+ 0
+
+ -19
+
+
+
+ 3
+ 2
+ `#include <
+ 1
+
+ 0
+
+ -32
+
+
+ 2
+ >
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+
+
+
+
+ 0
+
+ -20
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -21
@@ -6754,7 +6822,7 @@
0
- -18
+ -22
@@ -6763,96 +6831,6 @@
[@#include <boost/tuple/tuple.hpp>
namespace
boost
{
(:include api pre_indent="4":)
}@]
-
-
- 0
-
- -19
-
-
-
- 0
-
-
-
-
- 0
-
- -35
-
-
-
- 3
- 2
- [@#include <(:link
- 1
-
- 0
-
- -32
-
-
- 2
- :)>
namespace
boost
{
(:include api pre_indent="4":)
}@]
-
-
-
-
- 0
-
- -38
-
-
-
- 0
-
-
-
-
- 0
-
- -39
-
-
-
- 0
-
-
-
-
- 0
-
- -30
-
-
-
- 1
- 2
- [@#include <exception>
#include <string>
namespace
boost
{
(:include api pre_indent="4":)
}@]
-
-
-
-
- 0
-
- -25
-
-
-
- 3
- 2
- `#include <(:link
- 1
-
- 0
-
- -34
-
-
- 2
- :)>
[@namespace
boost
{
(:include def pre_indent="4":)
}@]
-
-
0
@@ -6868,7 +6846,7 @@
0
- -37
+ -24
@@ -6879,42 +6857,29 @@
0
- -36
-
-
-
- 1
- 2
- (:include api:)
-
-
-
-
- 0
-
- -27
+ -25
3
2
- `#include <
+ `#include <(:link
1
0
- -32
+ -36
2
- >
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+ :)>
[@namespace
boost
{
(:include decl:)
}@]
0
- -29
+ -30
@@ -6932,6 +6897,39 @@
>
(:include decl:)
+
+
+ 0
+
+ -26
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -27
+
+
+
+ 3
+ 2
+ `#include <(:link
+ 1
+
+ 0
+
+ -32
+
+
+ 2
+ :)>
[@namespace
boost
{
(:include def pre_indent="4":)
}@]
+
+
0
@@ -6939,6 +6937,52 @@
-28
+
+ 3
+ 2
+ `#include <(:link
+ 1
+
+ 0
+
+ -34
+
+
+ 2
+ :)>
[@namespace
boost
{
(:include def pre_indent="4":)
}@]
+
+
+
+
+ 0
+
+ -38
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -31
+
+
+
+ 1
+ 2
+ [@#include <exception>
#include <string>
namespace
boost
{
(:include api pre_indent="4":)
}@]
+
+
+
+
+ 0
+
+ -29
+
+
3
2
@@ -6954,6 +6998,32 @@
:)>
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
+
+
+ 0
+
+ -32
+
+
+
+ 1
+ 2
+ [@namespace
boost
{
(:include api pre_indent="4":)
}@]
+
+
+
+
+ 0
+
+ -33
+
+
+
+ 1
+ 2
+ [@#include <boost/shared_ptr.hpp>
namespace
boost
{
(:include api pre_indent="4":)
}@]
+
+
0
@@ -6980,52 +7050,13 @@
0
- -33
-
-
-
- 1
- 2
- [@#include <boost/shared_ptr.hpp>
namespace
boost
{
(:include api pre_indent="4":)
}@]
-
-
-
-
- 0
-
- -32
-
-
-
- 1
- 2
- [@namespace
boost
{
(:include api pre_indent="4":)
}@]
-
-
-
-
- 0
-
- -31
-
-
-
- 1
- 2
- [@namespace
boost
{
(:include api pre_indent="4":)
}@]
-
-
-
-
- 0
-
- -24
+ -35
3
2
- `#include <(:link
+ [@#include <(:link
1
0
@@ -7034,36 +7065,38 @@
2
- :)>
[@namespace
boost
{
(:include def pre_indent="4":)
}@]
+ :)>
namespace
boost
{
(:include api pre_indent="4":)
}@]
0
- -21
+ -36
- 3
+ 1
2
- `#include <(:link
- 1
-
- 0
-
- -36
-
-
- 2
- :)>
[@namespace
boost
{
(:include decl:)
}@]
+ (:include api:)
0
- -20
+ -37
+
+
+
+ 0
+
+
+
+
+ 0
+
+ -39
@@ -7081,39 +7114,6 @@
0
-
-
- 0
-
- -22
-
-
-
- 0
-
-
-
-
- 0
-
- -26
-
-
-
- 3
- 2
- `#include <(:link
- 1
-
- 0
-
- -34
-
-
- 2
- :)>\\
[@namespace
boost
{
(:include decl pre_indent="4":)
}@]
-
-
0
@@ -7189,68 +7189,68 @@
-19
- -35
-
-
- -38
-
-
- -39
-
-
- -30
-
-
- -25
-
-
- -23
-
-
- -37
-
-
- -36
-
-
- -27
-
-
- -29
-
-
- -28
-
-
- -34
-
-
- -33
-
-
- -32
-
-
- -31
-
-
- -24
+ -20
-21
-
- -20
-
-
- -40
-
-22
+
+ -23
+
+
+ -24
+
+
+ -25
+
+
+ -30
+
-26
+
+ -27
+
+
+ -28
+
+
+ -38
+
+
+ -31
+
+
+ -29
+
+
+ -32
+
+
+ -33
+
+
+ -34
+
+
+ -35
+
+
+ -36
+
+
+ -37
+
+
+ -39
+
+
+ -40
+
-41
@@ -7273,7 +7273,7 @@
- -19
+ -23
@@ -7290,7 +7290,7 @@
- -20
+ -24
@@ -7307,7 +7307,7 @@
- -22
+ -17
@@ -7376,7 +7376,7 @@
- -24
+ -27
@@ -7408,7 +7408,7 @@
- -16
+ -20
@@ -7436,7 +7436,7 @@
- -39
+ -38
@@ -7464,7 +7464,7 @@
- -8
+ -11
@@ -7492,7 +7492,7 @@
- -27
+ -19
@@ -7520,7 +7520,7 @@
- -26
+ -7
@@ -7552,9 +7552,9 @@
1
- 86015F1EAE1BF32CF58BD22D021B7697EAF6A5B07B79CE46116046B74AAE0327
- 2401878021
- 1632
+ DB399F862FF8F7FC33944FDA379AAB5585A13C33DB71B3590F87125BC89C571E
+ 2539242395
+ 1648
323
@@ -7568,7 +7568,7 @@
- -30
+ -31
@@ -7592,35 +7592,7 @@
- -23
-
-
-
-
-
-
- 2
- E86977BC88F0D950B8FD02FC853FFC0D7230B26376B908037F3F4AF429FD9A4D
- 557160971
- 1522
- 433
- 25FBAAA29F300B32DF38832E0A102B8A4FAB726B5FAEE428B00DBD5D58D9BB16
- 3475582031
- 1039
- 477
-
-
-
-
-
- 0
- ../../../../boost/exception/diagnostic_information.hpp
- 0
- 0
-
-
-
- -5
+ -26
@@ -7644,7 +7616,7 @@
- -29
+ -30
@@ -7692,7 +7664,7 @@
- -7
+ -10
@@ -7740,7 +7712,7 @@
- -6
+ -9
@@ -7768,7 +7740,7 @@
- -21
+ -25
@@ -7796,7 +7768,7 @@
- -17
+ -21
@@ -7824,7 +7796,7 @@
- -25
+ -28
@@ -7848,7 +7820,7 @@
- -18
+ -22
@@ -7872,7 +7844,7 @@
- -11
+ -14
@@ -7920,7 +7892,7 @@
- -13
+ -15
@@ -7948,7 +7920,7 @@
- -9
+ -12
@@ -7976,7 +7948,7 @@
- -14
+ -16
@@ -8004,7 +7976,7 @@
- -15
+ -18
@@ -8032,7 +8004,7 @@
- -10
+ -13
@@ -8060,7 +8032,35 @@
- -28
+ -29
+
+
+
+
+
+
+ 2
+ B13B5FDADDB2BA2714DA95BB0249C315D5ECD2DCFFEEFDB34EAF64E7C5BD40E6
+ 3385171361
+ 1538
+ 433
+ 25FBAAA29F300B32DF38832E0A102B8A4FAB726B5FAEE428B00DBD5D58D9BB16
+ 3475582031
+ 1039
+ 493
+
+
+
+
+
+ 0
+ ../../../../boost/exception/diagnostic_information.hpp
+ 0
+ 0
+
+
+
+ -6
@@ -8112,7 +8112,7 @@
- -31
+ -8
@@ -8140,7 +8140,7 @@
- -12
+ -5
@@ -8188,7 +8188,7 @@
- -38
+ -39
@@ -8219,7 +8219,7 @@
-5
- diagnostic_information free function
+ error_info free function
@@ -8228,7 +8228,7 @@
-6
-
+ diagnostic_information free function
@@ -8237,7 +8237,7 @@
-7
- diagnostic_information tutorial
+ error_info free function
@@ -8246,7 +8246,7 @@
-8
- exception_ptr free function
+
@@ -8255,7 +8255,7 @@
-9
- exception_ptr free function
+
@@ -8264,7 +8264,7 @@
-10
- exception_ptr free function
+ diagnostic_information tutorial
@@ -8273,7 +8273,7 @@
-11
- noalso noindex tutorial
+ exception_ptr free function
@@ -8282,7 +8282,7 @@
-12
- error_info free function
+ exception_ptr free function
@@ -8291,7 +8291,7 @@
-13
- noalso noindex tutorial
+ exception_ptr free function
@@ -8300,7 +8300,7 @@
-14
- type
+ noalso noindex tutorial
@@ -8309,7 +8309,7 @@
-15
- exception_ptr type
+ noalso noindex tutorial
@@ -8318,7 +8318,7 @@
-16
- function
+ type
@@ -8327,7 +8327,7 @@
-17
- error_info free function
+ tutorial
@@ -8336,7 +8336,7 @@
-18
-
+ exception_ptr type
@@ -8345,13 +8345,31 @@
-19
- noindex
+ error_info free function
0
- -35
+ -20
+
+
+ function
+
+
+
+ 0
+
+ -21
+
+
+ error_info free function
+
+
+
+ 0
+
+ -22
@@ -8360,19 +8378,28 @@
0
- -38
+ -23
- noalso noindex tutorial
+ noindex
0
- -39
+ -24
- function
+ tutorial
+
+
+
+ 0
+
+ -25
+
+
+ free function
@@ -8387,38 +8414,11 @@
0
- -25
-
-
- type
-
-
-
- 0
-
- -23
+ -26
tutorial
-
-
- 0
-
- -37
-
-
- index noindex
-
-
-
- 0
-
- -36
-
-
-
-
0
@@ -8426,16 +8426,7 @@
-27
- error_info free function
-
-
-
- 0
-
- -29
-
-
-
+ type
@@ -8444,13 +8435,40 @@
-28
+ type
+
+
+
+ 0
+
+ -38
+
+
+ function
+
+
+
+ 0
+
+ -31
+
+
+
+
+
+
+ 0
+
+ -29
+
+
exception_ptr free function
0
- -34
+ -32
@@ -8468,7 +8486,7 @@
0
- -32
+ -34
@@ -8477,7 +8495,7 @@
0
- -31
+ -35
@@ -8486,28 +8504,28 @@
0
- -24
+ -36
- type
+
0
- -21
+ -37
- free function
+ index noindex
0
- -20
+ -39
- tutorial
+ noalso noindex tutorial
@@ -8518,24 +8536,6 @@
noalso noindex tutorial
-
-
- 0
-
- -22
-
-
- tutorial
-
-
-
- 0
-
- -26
-
-
- error_info free function
-
0