Boost logo

Boost :

Subject: [boost] [core] Breaking change to boost::ref in 1.56
From: Eric Niebler (eniebler_at_[hidden])
Date: 2014-07-13 00:54:10

(Repost in a new thread)

While investigating a failure[^1] in proto, I discovered the following
change to boost::ref:

This failure was caused by the following change to boost::ref by Agustín
Bergé (K-ballo):

I didn't see any discussion about this change. (Was there one?) I can
guess why it was made: to make boost::ref behave like std::ref, which
does "reference collapsing" with reference_wrapper (which IMO is broken,
and I unsuccessfully argued that in the committee when this was voted
in). The problem is, it's a breaking interface change to one of the
oldest, most heavily used, and stable pieces of Boost. It pretty
massively breaks a major part of Boost.Proto's interface
(proto::make_expr). I've hacked around the problem in Proto's tests, but
this is going to break end-user code, and I don't know what I'm going to
tell people.

I don't like differences between boost and std. But I also don't like
breaking code. What do we want here?



Boost list run by bdawes at, gregod at, cpdaniel at, john at