Ticket #12203 (closed Bugs: fixed)
boost::optional<optional<T>&> broken in 1.61.0
|Reported by:||benzejaa@…||Owned by:||fcacciola|
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.
- Owner set to fcacciola
- Component changed from None to optional