</div><p>The <spanclass="RenoLink">exception_ptr</span> type can be used to refer to a copy of an exception object. It is Default Constructible, Copy Constructible, Assignable and Equality Comparable; <spanclass="RenoLink">exception_ptr</span>'s operations do not throw.</p>
<p>Two instances of <spanclass="RenoLink">exception_ptr</span> are equivalent and compare equal if and only if they refer to the same exception.</p>
<p>The default constructor of <spanclass="RenoLink">exception_ptr</span> produces the null value of the type. The null value is equivalent only to itself.</p>
<p>The <spanclass="RenoLink">exception_ptr</span> type is "as thread-safe as built-in types":</p>
<div><ul><li> An <spanclass="RenoLink">exception_ptr</span> instance can be "read" simultaneously by multiple threads</li>
<li> Different <spanclass="RenoLink">exception_ptr</span> instances can be "written to" simultaneously by multiple threads, even when these instances refer to the same exception object</li>
<p>An <spanclass="RenoLink">exception_ptr</span> can be added as <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span> to any boost::<spanclass="RenoLink"><ahref="exception.html">exception</a></span>. This is a convenient way to nest exceptions. There is no limit on the depth of the nesting, however cyclic references result in undefined behavior.</p>