编译器警告(等级 3)C4698
“feature”仅用于评估,在将来的更新中可能会被更改或删除。
备注
出于实验和获取反馈的目的而发布的 WinRT API 使用 Windows.Foundation.Metadata.ExperimentalAttribute
属性进行修饰。 在 Visual Studio 2017 版本 15.3 中,编译器为此属性生成警告 C4698。 旧版 Windows SDK 中的一些 API 已使用此特性进行修饰,调用这些 API 现在会触发这一编译器警告。 更高版本的 Windows SDK 从所有已发布的类型中删除了此属性。 如果使用的是更低版本的 SDK,则需要取消针对已发布类型的所有调用抛出的这些警告。
在不更改代码的情况下关闭警告
若要了解如何禁用特定编译器版本或更高版本中引入的警告,请参阅由编译器版本引发的编译器警告。
可以使用 warning
杂注 #pragma warning(suppress : 4698)
关闭特定代码行的警告。 还可以使用警告杂注 #pragma warning(disable : 4698)
关闭文件中的警告。 可以使用 /wd4698
命令行选项在命令行版本中全局关闭警告。
若要关闭 Visual Studio IDE 中整个项目的警告,请执行以下操作:
- 打开项目的“属性页”对话框。 有关如何使用“属性页”对话框的信息,请参阅属性页。
- 选择“配置属性”>“C/C++”>“高级”页。
- 编辑“禁用特定警告”属性以添加
4698
。 选择“确定”以应用更改。
示例
此代码在某些版本的 Windows SDK 中生成警告 C4698:
Windows::Storage::IApplicationDataStatics2::GetForUserAsync(); // C4698
// 'Windows::Storage::IApplicationDataStatics2::GetForUserAsync' is for
// evaluation purposes only and is subject to change or removal in future updates
若要禁用此警告,请添加 #pragma:
#pragma warning(push)
#pragma warning(disable:4698)
Windows::Storage::IApplicationDataStatics2::GetForUserAsync();
#pragma warning(pop)