[Boost-bugs] [Boost C++ Libraries] #6070: extends::operator() and operator= eagerly compute return type can result in hard error

Subject: [Boost-bugs] [Boost C++ Libraries] #6070: extends::operator() and operator= eagerly compute return type can result in hard error
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-10-29 04:21:54


#6070: extends::operator() and operator= eagerly compute return type can result in
hard error
--------------------------+-------------------------------------------------
 Reporter: eric_niebler | Owner: eric_niebler
     Type: Bugs | Status: new
Milestone: Boost 1.48.0 | Component: proto
  Version: Boost 1.47.0 | Severity: Problem
 Keywords: |
--------------------------+-------------------------------------------------
 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.

 See http://lists.boost.org/proto/2011/10/0595.php for a full description
 of this issue.

 The attached patch addresses the issue. It may have compile time
 implications, though.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6070>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:07 UTC