Subject: [Boost-bugs] [Boost C++ Libraries] #12203: boost::optional<optional<T>&> broken in 1.61.0
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-05-13 15:35:11
#12203: boost::optional<optional<T>&> broken in 1.61.0
------------------------+------------------------------
Reporter: benzejaa@⦠| Type: Bugs
Status: new | Milestone: To Be Determined
Component: None | Version: Boost 1.61.0
Severity: Problem | Keywords:
------------------------+------------------------------
With the new specialization for boost::optional<T&>, there's one use case
that's broken now...if T is itself an optional, things are broken.
Diving into optional/detail/optional_reference_spec.hpp it looks like
there's some boost::enable_if statements disabling this functionality.
Presumably these statements are to differentiate from the copy
constructors/assignment above (although I'm not sure why some of the other
statements are similarly guarded). However "is_no_optional" is too broad
of a guard.
Likely something like !boost::is_same<optional<T&>, typename
boost::decay<R>::type> would be a better condition...I'll try it out and
update with further info.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/12203> 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:20 UTC