optional<const T&>::rval_reference_type is now T&& (not const T&)