diff --git a/doc/source/boost-exception.reno b/doc/source/boost-exception.reno index 6ba1694..5fd08e4 100644 --- a/doc/source/boost-exception.reno +++ b/doc/source/boost-exception.reno @@ -179,14 +179,14 @@ 3 - 073C70F0D1C27474AB493044E52FFE0D1C3295AE64271A3810FE4EAADF180FF8 - 4147382513 - 1041 + 99DDC29B8C4D366F7A5A5819117AF190E5255231DD9313E1CC0D56BCD9D89BAA + 2051148095 + 1039 548 - 5D5B59DE2E0728CF19BDD22BF7DE3FADAD08B422B577E0705508F6D9FB6707C7 - 387228411 - 623 - 412 + 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C + 2825495330 + 622 + 411 38B566F2C6678B8724D18086A6F76E077DC2ADC1BB69A4B83BF0A2C3B7D31B50 2218658069 31 @@ -232,9 +232,9 @@ 1 - 68C66297C6264EA69A6D19027C04B5113B3061648DA859BD91CB456B0A0526F8 - 905703606 - 11839 + 58091DC5EBEE7F90249253E3177232040F23E5D75F6530A54041D93DBFE99291 + 2889971768 + 11308 321 @@ -277,9 +277,9 @@ 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 927 44A436E88E9302D907AF1F343063D988F0F87C863E372EA97378835C64480093 308353940 @@ -512,14 +512,14 @@ 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 927 - B86F5C0A69B3847A8FC514C61F1DF8EA5DAFFDEC2748F6FD3494198D3741ABC7 - 639423670 - 901 - 8905 + 796BD0D716259ADB3173AFA2A7989E3F52F5D007D67D132DE95A080801510B50 + 1299192030 + 7151 + 2124 @@ -694,7 +694,7 @@ 964F6A1CDF157430B6F65ABDD6A590CFA6AE83EAED66B5B59BA829DB07DF97F2 3653363251 731 - 735 + 780 36688510914673386A7870D1D4970B7D74CF9A4B7226F9E225A5607DCBFB12C4 2314308857 446 @@ -830,13 +830,13 @@ 2 - 04DB2E0229B4E66C2DCC8265F1A03E78A571548BB34D1371D35EDB8149A7F806 - 546881876 - 3807 - 1476 - FEFF55B78626A9BF729269CF569A8D372BDAE94D23C1C666CBC3ACCE0E13A6AA - 2482779682 - 3283 + C58F3DFE2F3E99070B5C0982BD1A9101B6C9E56901A8E276EFA131B3F131F12C + 1482082928 + 3832 + 1521 + 04DC5F51958DAE2FB24D3C430AA74E860FD42BFA204D223723B77B11656CB159 + 1496465214 + 3308 26 @@ -973,14 +973,14 @@ 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 927 1516D0B7E11CBEB60CE4222565ACCAFF2E9857A8A505C1C26E2AE90087250581 3624753243 279 - 103 + 177 @@ -1294,14 +1294,14 @@ 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 927 F65C82C62C1EEA672C42FE46189491942DE15B2F8C998E7CAE49588C7D8CBFFA 1041900763 143 - 10115 + 9584 @@ -1388,18 +1388,18 @@ 3 - 073C70F0D1C27474AB493044E52FFE0D1C3295AE64271A3810FE4EAADF180FF8 - 4147382513 - 1041 + 99DDC29B8C4D366F7A5A5819117AF190E5255231DD9313E1CC0D56BCD9D89BAA + 2051148095 + 1039 548 - 5D5B59DE2E0728CF19BDD22BF7DE3FADAD08B422B577E0705508F6D9FB6707C7 - 387228411 - 623 - 412 - 5EB718F617CB65548DFF259216ED67278E1B4EA43BF5605D242448780D8C477E - 68818004 - 97 - 370 + 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C + 2825495330 + 622 + 411 + 98B33BE76679E3A4831241335CD5DFF6F634429F36BABF96C1D4DC2296C5ECC5 + 1584672077 + 208 + 259 @@ -1672,9 +1672,9 @@ 1 - 1922E0A161BF6AA0886BC01B3BBBB31AB7C50C55F1274209985A1EFB086FD8C7 - 989285904 - 5062 + 5594B7B6271DE43F8A8783A856C365F0E2DDC193C9ED293DE67EC75F16C1ABAD + 3976881657 + 5132 321 @@ -2169,14 +2169,14 @@ 2 - 04DB2E0229B4E66C2DCC8265F1A03E78A571548BB34D1371D35EDB8149A7F806 - 546881876 - 3807 - 1476 + C58F3DFE2F3E99070B5C0982BD1A9101B6C9E56901A8E276EFA131B3F131F12C + 1482082928 + 3832 + 1521 5738DF31DB52E5E8784199058479E798957794147A099D834110FF821C605EE3 1133216499 490 - 3311 + 3336 @@ -2365,14 +2365,14 @@ 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 927 0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4 2078296250 305 - 9808 + 9277 @@ -2506,14 +2506,14 @@ 2 - 073C70F0D1C27474AB493044E52FFE0D1C3295AE64271A3810FE4EAADF180FF8 - 4147382513 - 1041 + 99DDC29B8C4D366F7A5A5819117AF190E5255231DD9313E1CC0D56BCD9D89BAA + 2051148095 + 1039 548 - 5D5B59DE2E0728CF19BDD22BF7DE3FADAD08B422B577E0705508F6D9FB6707C7 - 387228411 - 623 - 412 + 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C + 2825495330 + 622 + 411 @@ -2732,9 +2732,9 @@ 1 - 64E81A46AD2B7E1AFE2718B02484CF9AFE7287CB1DF2CBFFE7B25B7D8D5FDBE3 - 3361882888 - 5012 + ED2BABEAAFC5425B304B6A58A6986D38DC1F249A2B29BA88C89475F517FDCE74 + 4116923183 + 5011 321 @@ -3247,9 +3247,9 @@ 2 - 31BD07D599F004E6A0BBE5E1D4D521DCC57D3F1D79BA101D998FAB55CF04903D - 1623562038 - 4482 + 16DD00328E4AF76F11BFD52A1E16305E0A2513B0BEB9D2380645C364AD4A3C4D + 211195741 + 4481 751 6E325144EF4F41FA3A225EB30729101382C4E99B3D6160E307311E4B4E641010 1097215175 @@ -3296,14 +3296,14 @@ 2 - 31BD07D599F004E6A0BBE5E1D4D521DCC57D3F1D79BA101D998FAB55CF04903D - 1623562038 - 4482 + 16DD00328E4AF76F11BFD52A1E16305E0A2513B0BEB9D2380645C364AD4A3C4D + 211195741 + 4481 751 B494F545ED1BD0502F8699D7059DC882495CC0D93A23CFA306E5F39BB14E4A97 259300739 523 - 3953 + 3952 @@ -3345,14 +3345,14 @@ 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 927 - 6B3B617AC518A2177BDB89656E726B4E4D79577E289130493A61BAE24FB64838 - 3173127726 - 1101 - 1103 + 1760DA943E0DCAE6DDB000F3C08D6E6F5F8AEDBBEAC7CAA84A2ED60BFA4B0E1A + 702729709 + 815 + 1307 @@ -14706,62 +14706,6 @@ -20 - - - - - 2 - 04DB2E0229B4E66C2DCC8265F1A03E78A571548BB34D1371D35EDB8149A7F806 - 546881876 - 3807 - 1476 - FEFF55B78626A9BF729269CF569A8D372BDAE94D23C1C666CBC3ACCE0E13A6AA - 2482779682 - 3283 - 26 - - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - -22 - - - - - - - 2 - 04DB2E0229B4E66C2DCC8265F1A03E78A571548BB34D1371D35EDB8149A7F806 - 546881876 - 3807 - 1476 - 5738DF31DB52E5E8784199058479E798957794147A099D834110FF821C605EE3 - 1133216499 - 490 - 3311 - - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - -51 - - @@ -14938,6 +14882,62 @@ -64 + + + + + 2 + C58F3DFE2F3E99070B5C0982BD1A9101B6C9E56901A8E276EFA131B3F131F12C + 1482082928 + 3832 + 1521 + 04DC5F51958DAE2FB24D3C430AA74E860FD42BFA204D223723B77B11656CB159 + 1496465214 + 3308 + 26 + + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + -22 + + + + + + + 2 + C58F3DFE2F3E99070B5C0982BD1A9101B6C9E56901A8E276EFA131B3F131F12C + 1482082928 + 3832 + 1521 + 5738DF31DB52E5E8784199058479E798957794147A099D834110FF821C605EE3 + 1133216499 + 490 + 3336 + + + + + + 0 + ../../../../boost/exception/diagnostic_information.hpp + 0 + 0 + + + + -51 + + @@ -14990,14 +14990,38 @@ -38 + + + + + 1 + DB156E6A8ACB9FB90C8FB110FC25A5FEB14A619F82EEC47FF913373592E5CC3E + 240075319 + 6209 + 412 + + + + + + 0 + ../../example/example_io.cpp + 0 + 0 + + + + -73 + + 2 - 31BD07D599F004E6A0BBE5E1D4D521DCC57D3F1D79BA101D998FAB55CF04903D - 1623562038 - 4482 + 16DD00328E4AF76F11BFD52A1E16305E0A2513B0BEB9D2380645C364AD4A3C4D + 211195741 + 4481 751 6E325144EF4F41FA3A225EB30729101382C4E99B3D6160E307311E4B4E641010 1097215175 @@ -15023,14 +15047,14 @@ 2 - 31BD07D599F004E6A0BBE5E1D4D521DCC57D3F1D79BA101D998FAB55CF04903D - 1623562038 - 4482 + 16DD00328E4AF76F11BFD52A1E16305E0A2513B0BEB9D2380645C364AD4A3C4D + 211195741 + 4481 751 B494F545ED1BD0502F8699D7059DC882495CC0D93A23CFA306E5F39BB14E4A97 259300739 523 - 3953 + 3952 @@ -15046,30 +15070,6 @@ -76 - - - - - 1 - DB156E6A8ACB9FB90C8FB110FC25A5FEB14A619F82EEC47FF913373592E5CC3E - 240075319 - 6209 - 412 - - - - - - 0 - ../../example/example_io.cpp - 0 - 0 - - - - -73 - - @@ -15470,6 +15470,30 @@ -45 + + + + + 1 + ED2BABEAAFC5425B304B6A58A6986D38DC1F249A2B29BA88C89475F517FDCE74 + 4116923183 + 5011 + 321 + + + + + + 0 + ../../../../boost/exception/info.hpp + 0 + 0 + + + + -63 + + @@ -15570,6 +15594,30 @@ -21 + + + + + 1 + 58091DC5EBEE7F90249253E3177232040F23E5D75F6530A54041D93DBFE99291 + 2889971768 + 11308 + 321 + + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -9 + + @@ -15699,167 +15747,115 @@ 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 - 927 - 6B3B617AC518A2177BDB89656E726B4E4D79577E289130493A61BAE24FB64838 - 3173127726 - 1101 - 1103 + 99DDC29B8C4D366F7A5A5819117AF190E5255231DD9313E1CC0D56BCD9D89BAA + 2051148095 + 1039 + 548 + 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C + 2825495330 + 622 + 411 0 - ../../../../boost/exception/detail/exception_ptr.hpp + ../../../../boost/exception/detail/error_info_impl.hpp 0 0 - -77 + -58 - 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 - 927 - 1516D0B7E11CBEB60CE4222565ACCAFF2E9857A8A505C1C26E2AE90087250581 - 3624753243 - 279 - 103 + 3 + 99DDC29B8C4D366F7A5A5819117AF190E5255231DD9313E1CC0D56BCD9D89BAA + 2051148095 + 1039 + 548 + 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C + 2825495330 + 622 + 411 + 38B566F2C6678B8724D18086A6F76E077DC2ADC1BB69A4B83BF0A2C3B7D31B50 + 2218658069 + 31 + 143 0 - ../../../../boost/exception/detail/exception_ptr.hpp + ../../../../boost/exception/detail/error_info_impl.hpp 0 0 - -25 + -8 - 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 - 927 - 44A436E88E9302D907AF1F343063D988F0F87C863E372EA97378835C64480093 - 308353940 - 75 - 26 + 3 + 99DDC29B8C4D366F7A5A5819117AF190E5255231DD9313E1CC0D56BCD9D89BAA + 2051148095 + 1039 + 548 + 12EE98255E53951EE44D5D95A0506693E9F5F9D371505F490B8C0676EB383C7C + 2825495330 + 622 + 411 + 98B33BE76679E3A4831241335CD5DFF6F634429F36BABF96C1D4DC2296C5ECC5 + 1584672077 + 208 + 259 0 - ../../../../boost/exception/detail/exception_ptr.hpp + ../../../../boost/exception/detail/error_info_impl.hpp 0 0 - -10 + -34 - 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 - 927 - B86F5C0A69B3847A8FC514C61F1DF8EA5DAFFDEC2748F6FD3494198D3741ABC7 - 639423670 - 901 - 8905 + 1 + 5594B7B6271DE43F8A8783A856C365F0E2DDC193C9ED293DE67EC75F16C1ABAD + 3976881657 + 5132 + 321 0 - ../../../../boost/exception/detail/exception_ptr.hpp + ../../../../boost/exception/diagnostic_information.hpp 0 0 - -15 - - - - - - - 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 - 927 - 0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4 - 2078296250 - 305 - 9808 - - - - - - 0 - ../../../../boost/exception/detail/exception_ptr.hpp - 0 - 0 - - - - -55 - - - - - - - 2 - 653D3C91AD796FCE5C1616DDD06D72FBE40969C6111B92AC3AA425AB7D451FAB - 3664841048 - 11133 - 927 - F65C82C62C1EEA672C42FE46189491942DE15B2F8C998E7CAE49588C7D8CBFFA - 1041900763 - 143 - 10115 - - - - - - 0 - ../../../../boost/exception/detail/exception_ptr.hpp - 0 - 0 - - - - -32 + -40 @@ -15938,30 +15934,6 @@ -52 - - - - - 1 - 1922E0A161BF6AA0886BC01B3BBBB31AB7C50C55F1274209985A1EFB086FD8C7 - 989285904 - 5062 - 321 - - - - - - 0 - ../../../../boost/exception/diagnostic_information.hpp - 0 - 0 - - - - -40 - - @@ -16042,24 +16014,168 @@ - 1 - 64E81A46AD2B7E1AFE2718B02484CF9AFE7287CB1DF2CBFFE7B25B7D8D5FDBE3 - 3361882888 - 5012 - 321 + 2 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 + 927 + 1760DA943E0DCAE6DDB000F3C08D6E6F5F8AEDBBEAC7CAA84A2ED60BFA4B0E1A + 702729709 + 815 + 1307 0 - ../../../../boost/exception/info.hpp + ../../../../boost/exception/detail/exception_ptr.hpp 0 0 - -63 + -77 + + + + + + + 2 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 + 927 + 796BD0D716259ADB3173AFA2A7989E3F52F5D007D67D132DE95A080801510B50 + 1299192030 + 7151 + 2124 + + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -15 + + + + + + + 2 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 + 927 + 1516D0B7E11CBEB60CE4222565ACCAFF2E9857A8A505C1C26E2AE90087250581 + 3624753243 + 279 + 177 + + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -25 + + + + + + + 2 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 + 927 + 44A436E88E9302D907AF1F343063D988F0F87C863E372EA97378835C64480093 + 308353940 + 75 + 26 + + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -10 + + + + + + + 2 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 + 927 + 0066D4E6E6B189906E6DE04F08509F3737511701A1B1355B37511EC18E8371F4 + 2078296250 + 305 + 9277 + + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -55 + + + + + + + 2 + E283724582D1A1C7FADAEF8260CF64EA42A359DD1DE0109AB380B839DD00C5E1 + 2285342938 + 10602 + 927 + F65C82C62C1EEA672C42FE46189491942DE15B2F8C998E7CAE49588C7D8CBFFA + 1041900763 + 143 + 9584 + + + + + + 0 + ../../../../boost/exception/detail/exception_ptr.hpp + 0 + 0 + + + + -32 @@ -16150,7 +16266,7 @@ 964F6A1CDF157430B6F65ABDD6A590CFA6AE83EAED66B5B59BA829DB07DF97F2 3653363251 731 - 735 + 780 36688510914673386A7870D1D4970B7D74CF9A4B7226F9E225A5607DCBFB12C4 2314308857 446 @@ -16170,122 +16286,6 @@ -19 - - - - - 2 - 073C70F0D1C27474AB493044E52FFE0D1C3295AE64271A3810FE4EAADF180FF8 - 4147382513 - 1041 - 548 - 5D5B59DE2E0728CF19BDD22BF7DE3FADAD08B422B577E0705508F6D9FB6707C7 - 387228411 - 623 - 412 - - - - - - 0 - ../../../../boost/exception/detail/error_info_impl.hpp - 0 - 0 - - - - -58 - - - - - - - 3 - 073C70F0D1C27474AB493044E52FFE0D1C3295AE64271A3810FE4EAADF180FF8 - 4147382513 - 1041 - 548 - 5D5B59DE2E0728CF19BDD22BF7DE3FADAD08B422B577E0705508F6D9FB6707C7 - 387228411 - 623 - 412 - 38B566F2C6678B8724D18086A6F76E077DC2ADC1BB69A4B83BF0A2C3B7D31B50 - 2218658069 - 31 - 143 - - - - - - 0 - ../../../../boost/exception/detail/error_info_impl.hpp - 0 - 0 - - - - -8 - - - - - - - 3 - 073C70F0D1C27474AB493044E52FFE0D1C3295AE64271A3810FE4EAADF180FF8 - 4147382513 - 1041 - 548 - 5D5B59DE2E0728CF19BDD22BF7DE3FADAD08B422B577E0705508F6D9FB6707C7 - 387228411 - 623 - 412 - 5EB718F617CB65548DFF259216ED67278E1B4EA43BF5605D242448780D8C477E - 68818004 - 97 - 370 - - - - - - 0 - ../../../../boost/exception/detail/error_info_impl.hpp - 0 - 0 - - - - -34 - - - - - - - 1 - 68C66297C6264EA69A6D19027C04B5113B3061648DA859BD91CB456B0A0526F8 - 905703606 - 11839 - 321 - - - - - - 0 - ../../../../boost/exception/detail/exception_ptr.hpp - 0 - 0 - - - - -9 - - diff --git a/include/boost/exception/detail/exception_ptr.hpp b/include/boost/exception/detail/exception_ptr.hpp index 0179082..e98b98b 100644 --- a/include/boost/exception/detail/exception_ptr.hpp +++ b/include/boost/exception/detail/exception_ptr.hpp @@ -30,6 +30,9 @@ boost { typedef shared_ptr exception_ptr; + template + exception_ptr copy_exception( T const & ); + #ifndef BOOST_NO_RTTI typedef error_info original_exception_type; @@ -44,37 +47,42 @@ boost namespace exception_detail { - inline - static - exception_ptr - exception_ptr_bad_alloc() - { - static - struct - bad_alloc_: - std::bad_alloc, - exception_detail::clone_base + struct + bad_alloc_: + boost::exception, + std::bad_alloc { - clone_base const * - clone() const - { - return new bad_alloc_(*this); - } - void - rethrow() const - { - throw*this; - } - } e; - return exception_ptr(exception_ptr(),&e); + }; + + template + exception_ptr + get_bad_alloc() + { + static exception_ptr e = copy_exception( + bad_alloc_() << + throw_function("boost::current_exception()") << + throw_file(__FILE__) << + throw_line(Line) ); + return e; } + + template + struct + exception_ptr_bad_alloc + { + static exception_ptr const e; + }; + + template + exception_ptr const + exception_ptr_bad_alloc:: + e = get_bad_alloc(); } class unknown_exception: - public exception, - public std::exception, - public exception_detail::clone_base + public boost::exception, + public std::exception { public: @@ -101,18 +109,6 @@ boost private: - exception_detail::clone_base const * - clone() const - { - return new unknown_exception(*this); - } - - void - rethrow() const - { - throw*this; - } - template void add_original_type( E const & e ) @@ -130,8 +126,7 @@ boost class current_exception_std_exception_wrapper: public T, - public boost::exception, - public clone_base + public boost::exception { public: @@ -155,18 +150,6 @@ boost private: - clone_base const * - clone() const - { - return new current_exception_std_exception_wrapper(*this); - } - - void - rethrow() const - { - throw *this; - } - template void add_original_type( E const & e ) @@ -179,7 +162,7 @@ boost #ifdef BOOST_NO_RTTI template - exception const * + boost::exception const * get_boost_exception( T const * ) { try @@ -187,7 +170,7 @@ boost throw; } catch( - exception & x ) + boost::exception & x ) { return &x; } @@ -198,10 +181,10 @@ boost } #else template - exception const * + boost::exception const * get_boost_exception( T const * x ) { - return dynamic_cast(x); + return dynamic_cast(x); } #endif @@ -211,23 +194,23 @@ boost current_exception_std_exception( T const & e1 ) { if( boost::exception const * e2 = get_boost_exception(&e1) ) - return shared_ptr const>(new current_exception_std_exception_wrapper(e1,*e2)); + return copy_exception(current_exception_std_exception_wrapper(e1,*e2)); else - return shared_ptr const>(new current_exception_std_exception_wrapper(e1)); + return copy_exception(current_exception_std_exception_wrapper(e1)); } inline exception_ptr current_exception_unknown_exception() { - return shared_ptr(new unknown_exception()); + return copy_exception(unknown_exception()); } inline exception_ptr current_exception_unknown_boost_exception( boost::exception const & e ) { - return shared_ptr(new unknown_exception(e)); + return copy_exception(unknown_exception(e)); } inline @@ -237,7 +220,7 @@ boost if( boost::exception const * be = get_boost_exception(&e) ) return current_exception_unknown_boost_exception(*be); else - return shared_ptr(new unknown_exception(e)); + return copy_exception(unknown_exception(e)); } inline @@ -356,7 +339,7 @@ boost catch( std::bad_alloc & ) { - ret=exception_detail::exception_ptr_bad_alloc(); + ret=exception_detail::exception_ptr_bad_alloc<__LINE__>::e; } catch( ... ) @@ -368,7 +351,7 @@ boost catch( std::bad_alloc & ) { - ret=exception_detail::exception_ptr_bad_alloc(); + ret=exception_detail::exception_ptr_bad_alloc<__LINE__>::e; } catch( ... ) diff --git a/include/boost/exception/info.hpp b/include/boost/exception/info.hpp index 2d8b71f..8c393a6 100644 --- a/include/boost/exception/info.hpp +++ b/include/boost/exception/info.hpp @@ -47,7 +47,7 @@ boost template inline - std::string + std::string error_info:: tag_typeid_name() const {