id summary reporter owner description type status milestone component version severity resolution keywords cc 6070 extends::operator() and operator= eagerly compute return type can result in hard error Eric Niebler Eric Niebler "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." Bugs new Boost 1.48.0 proto Boost 1.47.0 Problem