<p>A string value that contains varying amount of diagnostic information about the passed object:</p>
<div><ul><li> If E can be statically converted to either boost::<spanclass="RenoLink"><ahref="exception.html">exception</a></span> or to std::exception, dynamic_cast is used to access both the boost::<spanclass="RenoLink"><ahref="exception.html">exception</a></span> and std::exception subobjects of e; otherwise, the boost::<spanclass="RenoLink">diagnostic_information</span> template is not available.</li>
<li> The returned value contains the string representations of all <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span> objects stored in the boost::<spanclass="RenoLink"><ahref="exception.html">exception</a></span> subobject through <spanclass="RenoLink"><ahref="exception_operator_shl.html">operator<<</a></span>.</li>
<li> In addition, if verbose is true, it contains other diagnostic information relevant to the exception, including the string returned by std::exception::what().</li>
<p>The string representation of each <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span> object is deduced by an unqualified call to to_string(x), where x is of type <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span><Tag,T>, for which Boost Exception defines a generic overload. It converts x.<spanclass="RenoLink"><ahref="error_info_value.html">value</a></span>() to string, attempting to bind (at the time the <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span><Tag,T> template is instantiated) the following functions in order:</p>
<div><ol><li>Unqualified call to to_string(x.<spanclass="RenoLink"><ahref="error_info_value.html">value</a></span>()) (the return value is expected to be of type std::string.)</li>
<p>The first successfully bound function is used at the time <spanclass="RenoLink">diagnostic_information</span> is called; if both overload resolutions are unsuccessful, the system is unable to convert the <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span> object to string, and <i>an unspecified stub string value is used without issuing a compile error.</i></p>
<p>The <spanclass="RenoLink"><ahref="exception_ptr.html">exception_ptr</a></span> overload of <spanclass="RenoLink">diagnostic_information</span> is equivalent to:</p>
<p>this is a possible output from the <spanclass="RenoLink">diagnostic_information</span> function, as used in <i>libs/exception/example/example_io.cpp:</i></p>