<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>libstdc++: Exceptions</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); $(window).load(resizeHeight); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('a01688.html','');}); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Exceptions<div class="ingroups"><a class="el" href="a01686.html">Diagnostics</a></div></div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Collaboration diagram for Exceptions:</div> <div class="dyncontent"> <center><table><tr><td><div class="center"><iframe scrolling="no" frameborder="0" src="a01688.svg" width="504" height="84"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> </div> </td></tr></table></center> </div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00005.html">__cxxabiv1::__forced_unwind</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html">__gnu_cxx::forced_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html">__gnu_cxx::recursive_init_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00543.html">std::__exception_ptr::exception_ptr</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00636.html">std::bad_alloc</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00637.html">std::bad_cast</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00638.html">std::bad_exception</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00639.html">std::bad_function_call</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00640.html">std::bad_typeid</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00641.html">std::bad_weak_ptr</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00712.html">std::domain_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00718.html">std::exception</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00731.html">std::future_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00790.html">std::invalid_argument</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00792.html">std::ios_base::failure</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00857.html">std::length_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00865.html">std::logic_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00897.html">std::nested_exception</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00926.html">std::out_of_range</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00928.html">std::overflow_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00948.html">std::range_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00956.html">std::regex_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00968.html">std::runtime_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00976.html">std::system_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01005.html">std::underflow_error</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:gac6afb78180be4f4f841ae9d32f538f00"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#gac6afb78180be4f4f841ae9d32f538f00">std::terminate_handler</a> )()</td></tr> <tr class="separator:gac6afb78180be4f4f841ae9d32f538f00"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaeeec922393be8c20662a12875c1d09f0"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#gaeeec922393be8c20662a12875c1d09f0">std::unexpected_handler</a> )()</td></tr> <tr class="separator:gaeeec922393be8c20662a12875c1d09f0"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:gafcc191df1b2067da7e9d6096549db6b0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gafcc191df1b2067da7e9d6096549db6b0"></a> template<typename _Ex > </td></tr> <tr class="memitem:gafcc191df1b2067da7e9d6096549db6b0"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>std::__attribute__</b> ((__noreturn__))</td></tr> <tr class="separator:gafcc191df1b2067da7e9d6096549db6b0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga67ba96bcef76a5e9bed692e3a974946c"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga67ba96bcef76a5e9bed692e3a974946c"></a> template<typename _Ex > </td></tr> <tr class="memitem:ga67ba96bcef76a5e9bed692e3a974946c"><td class="memTemplItemLeft" align="right" valign="top">const nested_exception * </td><td class="memTemplItemRight" valign="bottom"><b>std::__get_nested_exception</b> (const _Ex &__ex)</td></tr> <tr class="separator:ga67ba96bcef76a5e9bed692e3a974946c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaca7174ffb4dbcacb78a826ab02919591"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaca7174ffb4dbcacb78a826ab02919591"></a> template<typename _Ex > </td></tr> <tr class="memitem:gaca7174ffb4dbcacb78a826ab02919591"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>std::__throw_with_nested</b> (_Ex &&,...) __attribute__((__noreturn__))</td></tr> <tr class="separator:gaca7174ffb4dbcacb78a826ab02919591"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga295faad384ed2c0d8957b275183de198"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga295faad384ed2c0d8957b275183de198"></a> template<typename _Ex > </td></tr> <tr class="memitem:ga295faad384ed2c0d8957b275183de198"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><b>std::__throw_with_nested</b> (_Ex &&__ex, const nested_exception *)</td></tr> <tr class="separator:ga295faad384ed2c0d8957b275183de198"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf51888cedbc669a114cd79e39e0cd9be"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#gaf51888cedbc669a114cd79e39e0cd9be">__gnu_cxx::__verbose_terminate_handler</a> ()</td></tr> <tr class="separator:gaf51888cedbc669a114cd79e39e0cd9be"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga25fab7d6d4d18076206783de4a225df5"><td class="memTemplParams" colspan="2">template<typename _Ex > </td></tr> <tr class="memitem:ga25fab7d6d4d18076206783de4a225df5"><td class="memTemplItemLeft" align="right" valign="top">exception_ptr </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01688.html#ga25fab7d6d4d18076206783de4a225df5">std::copy_exception</a> (_Ex __ex) noexcept</td></tr> <tr class="separator:ga25fab7d6d4d18076206783de4a225df5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga02cdcc517fefe661313437aa9356a28f"><td class="memItemLeft" align="right" valign="top">exception_ptr </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#ga02cdcc517fefe661313437aa9356a28f">std::current_exception</a> () noexcept</td></tr> <tr class="separator:ga02cdcc517fefe661313437aa9356a28f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga200c1d3152b2fd43b206da6c031b9730"><td class="memTemplParams" colspan="2">template<typename _Ex > </td></tr> <tr class="memitem:ga200c1d3152b2fd43b206da6c031b9730"><td class="memTemplItemLeft" align="right" valign="top">exception_ptr </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01688.html#ga200c1d3152b2fd43b206da6c031b9730">std::make_exception_ptr</a> (_Ex __ex) noexcept</td></tr> <tr class="separator:ga200c1d3152b2fd43b206da6c031b9730"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga64d0b68338d7edbfd7d95f4177dbc442"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#ga64d0b68338d7edbfd7d95f4177dbc442">std::rethrow_exception</a> (exception_ptr) __attribute__((__noreturn__))</td></tr> <tr class="separator:ga64d0b68338d7edbfd7d95f4177dbc442"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab61c4f8fae83699092207e16594f6b35"><td class="memTemplParams" colspan="2">template<typename _Ex > </td></tr> <tr class="memitem:gab61c4f8fae83699092207e16594f6b35"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01688.html#gab61c4f8fae83699092207e16594f6b35">std::rethrow_if_nested</a> (const _Ex &__ex)</td></tr> <tr class="separator:gab61c4f8fae83699092207e16594f6b35"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafdde517cbb3891421e60bff1d733e8dd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#gafdde517cbb3891421e60bff1d733e8dd">std::rethrow_if_nested</a> (const nested_exception &__ex)</td></tr> <tr class="separator:gafdde517cbb3891421e60bff1d733e8dd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa53bcb9876c7b393a9e9e26fc90d5811"><td class="memItemLeft" align="right" valign="top">terminate_handler </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#gaa53bcb9876c7b393a9e9e26fc90d5811">std::set_terminate</a> (terminate_handler) noexcept</td></tr> <tr class="separator:gaa53bcb9876c7b393a9e9e26fc90d5811"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga92329f10f9aba5eb5f26b11cf01d5166"><td class="memItemLeft" align="right" valign="top">unexpected_handler </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#ga92329f10f9aba5eb5f26b11cf01d5166">std::set_unexpected</a> (unexpected_handler) noexcept</td></tr> <tr class="separator:ga92329f10f9aba5eb5f26b11cf01d5166"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadd3befe08cc677fe78f3e6f6b0c6d29b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#gadd3befe08cc677fe78f3e6f6b0c6d29b">std::terminate</a> () noexcept __attribute__((__noreturn__))</td></tr> <tr class="separator:gadd3befe08cc677fe78f3e6f6b0c6d29b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabb5c9444dfac00145f90c2a75c52116e"><td class="memTemplParams" colspan="2">template<typename _Ex > </td></tr> <tr class="memitem:gabb5c9444dfac00145f90c2a75c52116e"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01688.html#gabb5c9444dfac00145f90c2a75c52116e">std::throw_with_nested</a> (_Ex __ex)</td></tr> <tr class="separator:gabb5c9444dfac00145f90c2a75c52116e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga876ca3bc46e47265109d55942ff2f6f7"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#ga876ca3bc46e47265109d55942ff2f6f7">std::uncaught_exception</a> () noexcept __attribute__((__pure__))</td></tr> <tr class="separator:ga876ca3bc46e47265109d55942ff2f6f7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga742bf00b19772819acc97ae5e8f4bebe"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01688.html#ga742bf00b19772819acc97ae5e8f4bebe">std::unexpected</a> () __attribute__((__noreturn__))</td></tr> <tr class="separator:ga742bf00b19772819acc97ae5e8f4bebe"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p>Classes and functions for reporting errors via exception classes. </p> <h2 class="groupheader">Typedef Documentation</h2> <a class="anchor" id="gac6afb78180be4f4f841ae9d32f538f00"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* std::terminate_handler)()</td> </tr> </table> </div><div class="memdoc"> <p>If you write a replacement terminate handler, it must be of this type. </p> <p>Definition at line <a class="el" href="a01221_source.html#l00087">87</a> of file <a class="el" href="a01221_source.html">exception</a>.</p> </div> </div> <a class="anchor" id="gaeeec922393be8c20662a12875c1d09f0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* std::unexpected_handler)()</td> </tr> </table> </div><div class="memdoc"> <p>If you write a replacement unexpected handler, it must be of this type. </p> <p>Definition at line <a class="el" href="a01221_source.html#l00090">90</a> of file <a class="el" href="a01221_source.html">exception</a>.</p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="gaf51888cedbc669a114cd79e39e0cd9be"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void __gnu_cxx::__verbose_terminate_handler </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>A replacement for the standard terminate_handler which prints more information about the terminating exception (if any) on stderr. </p> <p>Call </p> <div class="fragment"><div class="line">* <a class="code" href="a01688.html#gaa53bcb9876c7b393a9e9e26fc90d5811">std::set_terminate</a>(<a class="code" href="a01688.html#gaf51888cedbc669a114cd79e39e0cd9be">__gnu_cxx::__verbose_terminate_handler</a>)</div> <div class="line">* </div> </div><!-- fragment --><p> to use. For more info, see <a href="http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt02ch06s02.html">http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt02ch06s02.html</a></p> <p>In 3.4 and later, this is on by default. </p> </div> </div> <a class="anchor" id="ga25fab7d6d4d18076206783de4a225df5"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Ex > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">exception_ptr std::copy_exception </td> <td>(</td> <td class="paramtype">_Ex </td> <td class="paramname"><em>__ex</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Obtain an exception_ptr pointing to a copy of the supplied object. </p> <p>Definition at line <a class="el" href="a01224_source.html#l00169">169</a> of file <a class="el" href="a01224_source.html">exception_ptr.h</a>.</p> <p>References <a class="el" href="a01688.html#ga02cdcc517fefe661313437aa9356a28f">std::current_exception()</a>.</p> </div> </div> <a class="anchor" id="ga02cdcc517fefe661313437aa9356a28f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">exception_ptr std::current_exception </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Obtain an exception_ptr to the currently handled exception. If there is none, or the currently handled exception is foreign, return the null value. </p> <p>Referenced by <a class="el" href="a01224_source.html#l00169">std::copy_exception()</a>.</p> </div> </div> <a class="anchor" id="ga200c1d3152b2fd43b206da6c031b9730"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Ex > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">exception_ptr std::make_exception_ptr </td> <td>(</td> <td class="paramtype">_Ex </td> <td class="paramname"><em>__ex</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Obtain an exception_ptr pointing to a copy of the supplied object. </p> <p>Definition at line <a class="el" href="a01224_source.html#l00188">188</a> of file <a class="el" href="a01224_source.html">exception_ptr.h</a>.</p> </div> </div> <a class="anchor" id="ga64d0b68338d7edbfd7d95f4177dbc442"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void std::rethrow_exception </td> <td>(</td> <td class="paramtype">exception_ptr </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Throw the object pointed to by the exception_ptr. </p> </div> </div> <a class="anchor" id="gab61c4f8fae83699092207e16594f6b35"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Ex > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void std::rethrow_if_nested </td> <td>(</td> <td class="paramtype">const _Ex & </td> <td class="paramname"><em>__ex</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>If <code>__ex</code> is derived from nested_exception, <code>__ex.rethrow_nested()</code>. </p> <p>Definition at line <a class="el" href="a01378_source.html#l00146">146</a> of file <a class="el" href="a01378_source.html">nested_exception.h</a>.</p> </div> </div> <a class="anchor" id="gafdde517cbb3891421e60bff1d733e8dd"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void std::rethrow_if_nested </td> <td>(</td> <td class="paramtype">const nested_exception & </td> <td class="paramname"><em>__ex</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Overload, See N2619. </p> <p>Definition at line <a class="el" href="a01378_source.html#l00154">154</a> of file <a class="el" href="a01378_source.html">nested_exception.h</a>.</p> </div> </div> <a class="anchor" id="gaa53bcb9876c7b393a9e9e26fc90d5811"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">terminate_handler std::set_terminate </td> <td>(</td> <td class="paramtype">terminate_handler </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Takes a new handler function as an argument, returns the old function. </p> </div> </div> <a class="anchor" id="ga92329f10f9aba5eb5f26b11cf01d5166"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unexpected_handler std::set_unexpected </td> <td>(</td> <td class="paramtype">unexpected_handler </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Takes a new handler function as an argument, returns the old function. </p> </div> </div> <a class="anchor" id="gadd3befe08cc677fe78f3e6f6b0c6d29b"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void std::terminate </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>The runtime will call this function if exception handling must be abandoned for any reason. It can also be called by the user. </p> </div> </div> <a class="anchor" id="gabb5c9444dfac00145f90c2a75c52116e"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Ex > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void std::throw_with_nested </td> <td>(</td> <td class="paramtype">_Ex </td> <td class="paramname"><em>__ex</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>If <code>__ex</code> is derived from nested_exception, <code>__ex</code>. Else, an implementation-defined object derived from both. </p> <p>Definition at line <a class="el" href="a01378_source.html#l00136">136</a> of file <a class="el" href="a01378_source.html">nested_exception.h</a>.</p> </div> </div> <a class="anchor" id="ga876ca3bc46e47265109d55942ff2f6f7"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool std::uncaught_exception </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>[18.6.4]/1: 'Returns true after completing evaluation of a throw-expression until either completing initialization of the exception-declaration in the matching handler or entering <code>unexpected()</code> due to the throw; or after entering <code>terminate()</code> for any reason other than an explicit call to <code>terminate()</code>. [Note: This includes stack unwinding [15.2]. end note]'</p> <p>2: 'When <code>uncaught_exception()</code> is true, throwing an exception can result in a call of <code>terminate()</code> (15.5.1).' </p> <p>Referenced by <a class="el" href="a01400_source.html#l00428">std::basic_ostream< _CharT, _Traits >::sentry::~sentry()</a>.</p> </div> </div> <a class="anchor" id="ga742bf00b19772819acc97ae5e8f4bebe"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void std::unexpected </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>The runtime will call this function if an exception is thrown which violates the function's exception specification. </p> </div> </div> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li> </ul> </div> </body> </html>