在今年的Build C++/WinRT 2.0:开放环境下更快更智能中,Kenny演示了属性在IDL中,通过在ABI上选择异常处理为编译器提供了更好的优化机会。
不过,我自己尝试了一下,结果却出现了MIDL编译器错误。以下摘录的IDL文件
namespace NS
{
interface IMyInterface
{
[noexcept] String DoStuff();
};
}产生下列诊断输出:
error MIDL2025: msgsyntax语法错误上下文:期待。在"]“错误MIDL2009: msgun定义的符号上下文: noexcept.String error MIDL2025: msg语法错误上下文: expecting ]附近,或者在"DoStuff”错误MIDL2025: msg语法错误上下文: expecting附近。接近"(“错误MIDL2026: near无法从早期语法错误中恢复;中止编译
我在这里做错了什么,还是[noexcept]属性在Visual的GA版本(16.1.4)或Windows (10.0.18362.0)中还不可用?
发布于 2019-07-01 16:49:52
您将需要一个更新版本的MIDLRT。此功能目前可在Windows的内部构建中使用,并将随Windows的下一次重大更新一起发布。
https://stackoverflow.com/questions/56804340
复制相似问题