id summary reporter owner description type status milestone component version severity resolution keywords cc 3395 Assignment to optional is not possible if operator& is overriden Andrey Semashev Fernando Cacciola "The assignment operator for optional< T > uses T::operator& to dispatch the call between assign_expr functions. This dispatch breaks if the T::operator& returns something else than T*. This is the case with ATL types, such as CComBSTR. The suggested fix is to replace call to operator& with addressof. Please, find the attached patch against the 1.40 release. " Bugs closed Boost 1.41.0 optional Boost 1.40.0 Problem fixed optional assignment