<p>This function returns a string value that is automatically composed from the string representations of all <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span> objects stored in a boost::<spanclass="RenoLink"><ahref="exception.html">exception</a></span> through <spanclass="RenoLink"><ahref="exception_operator_shl.html">operator<<</a></span>, along with other diagnostic information relevant to the exception.</p>
<p>The string representation of each <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span> object is deduced by a function call that is bound at the time the <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span><Tag,T> template is instantiated. The following overload resolutions are attempted in order:</p>
<div><ol><li>Unqualified call to to_string(x), where x is of type <spanclass="RenoLink"><ahref="error_info.html">error_info</a></span><Tag,T> (the return value is expected to be of type std::string.)</li>
<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>
<li>Unqualified call to s << x.<spanclass="RenoLink"><ahref="error_info_value.html">value</a></span>(), where s is a std::ostringstream.</li>
</ol></div>
<p>The first successfully bound function is used at the time <spanclass="RenoLink"><ahref="diagnostic_information.html">diagnostic_information</a></span> is called; if all 3 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>