В этом году на Build Talk C ++ / WinRT 2.0: быстрее и умнее в открытом , Кенни Керр демонстрирует использование атрибута [noexcept]
в IDL , предоставляя лучшие возможности оптимизациикомпилятору, исключив обработку исключений в ABI.
Однако, попробовав это самостоятельно, я столкнулся с ошибками компилятора MIDL.Следующий урезанный файл IDL
namespace NS
{
interface IMyInterface
{
[noexcept] String DoStuff();
};
}
производит следующий диагностический вывод:
error MIDL2025: [msg]syntax error [context]: expecting . near "]"
error MIDL2009: [msg]undefined symbol [context]: noexcept.String
error MIDL2025: [msg]syntax error [context]: expecting ] or , near "DoStuff"
error MIDL2025: [msg]syntax error [context]: expecting . near "("
error MIDL2026: [msg]cannot recover from earlier syntax errors; aborting compilation
Я что-то не так делаю, или это атрибут [noexcept]
еще не доступно в версиях GA Visual Studio (16.1.4) или Windows SDK (10.0.18362.0)?