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