Boost C++ Libraries: Ticket #6070: extends::operator() and operator= eagerly compute return type can result in hard error https://svn.boost.org/trac10/ticket/6070 <p> In the cases when unary operator() and operator= are invalid in a particular domain, the return types of extends::operator() and operator= should not be computed. (Well, ideally, those functions shouldn't exist at all, but we live in an imperfect world.) Trouble is, as soon as the extends template is instantiated, the return types for those functions are eagerly computed, causing the generator to operate on a type that it may not be able to handle. This can cause a hard error. </p> <p> See <a class="ext-link" href="http://lists.boost.org/proto/2011/10/0595.php"><span class="icon">​</span>http://lists.boost.org/proto/2011/10/0595.php</a> for a full description of this issue. </p> <p> The attached patch addresses the issue. It may have compile time implications, though. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/6070 Trac 1.4.3 Eric Niebler Sat, 29 Oct 2011 04:23:51 GMT attachment set https://svn.boost.org/trac10/ticket/6070 https://svn.boost.org/trac10/ticket/6070 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">unary_function.patch</span> </li> </ul> <p> patch against trunk to address the issue </p> Ticket