【发布时间】:2019-08-29 21:49:30
【问题描述】:
我想创建一个可能存在异常的函数,如果是这种情况,则返回可选的。
这是一个小代码示例。
optional<Exception^> opt;
if (opt)
MessageBox::Show("Error");
我收到以下错误:
错误 C3265 无法在非托管中声明托管“_Value” 'std::_Optional_destruct_base<_ty>::$UnnamedClass$0x61d94762$23$' CLR d:\visualstudio\vc\tools\msvc\14.16.27023\include\optional 87
错误 C2848 'std::_Optional_destruct_base<_ty>::_Value': a 托管类型不能是 union CLR d:\visualstudio\vc\tools\msvc\14.16.27023\include\optional 87
错误 C3699 '&&':不能在类型上使用此间接 '_Ty' CLR d:\visualstudio\vc\tools\msvc\14.16.27023\include\optional 431 错误 C3699 '&&':不能在类型 'const 上使用此间接 _Ty' CLR d:\visualstudio\vc\tools\msvc\14.16.27023\include\optional 435
错误 C3699 '&&':不能在类型上使用此间接 '_Ty' CLR d:\visualstudio\vc\tools\msvc\14.16.27023\include\optional 467
错误 C3699 '&&':不能在类型 'const 上使用此间接寻址 _Ty' CLR d:\visualstudio\vc\tools\msvc\14.16.27023\include\optional 476
那么我该如何使用可选的呢?在 C++ CLI 中是否有可能?有哪些替代方案?
【问题讨论】:
-
如果询问 C++/CLI,请考虑标记 c++-cli。