将宏转换为Constexpr

Visual Studio 2017 15.8版目前在预览版中提供。今天,Preview3已经发布了,它附带了一些特性,可以提高开发人员的工作效率。15.8中的一个关键主题是代码现代化,宏是实现这一目标的关键目标。在15.8预览1中,我们宣布了在快速信息工具提示中扩展宏的能力,现在,对于预览3,我们很高兴地宣布将它们转换为现代C++ CONExePR表达式的方法。新的预览包括一个快速修复程序,可以从编辑器窗口访问,它标识可以转换为constexpr的宏,并提供执行转换的选项,作为清理和更新代码的一种方式。此功能(通常与编辑器功能类似)是可配置的,可以根据需要打开/关闭。

null

宏->constexpr快速修复

在编辑器中查看代码时,您可能会立即注意到某些宏下的#define指令中的一些“…”。这些“…”被称为建议,它们是与错误(红色曲线;对于最严重的问题)和警告(绿色曲线;对于中度严重的问题)。建议包括低严重性代码问题。 Macro suggestion in editor 打开“快速操作和重构”菜单(使用Alt+Enter或通过右键单击菜单)将显示一个新的“将宏转换为constexpr”选项。 Convert macro to constexpr quick-fix 选择该选项后,将显示一个预览窗口,其中总结了预期的更改: Macro->constexpr preview window 应用更改后,表达式将在代码编辑器中转换为constexpr: Constexpr conversion 该功能适用于常量,也适用于使用类似函数的宏的基本表达式: Function-like macro expressions 您可能会注意到上面的宏MAX下面没有“…”。对于类似函数的宏,我们不运行完整的预处理来保证尝试的转换将成功,从而保持稳定的IDE性能。因为我们只想在能够保证转换有意义时显示建议,所以我们选择不显示“…”指示符。但是,您仍然可以在“灯泡”菜单中找到要转换的选项,然后在预览窗口中单击“应用”时,我们将完全处理宏。在这种情况下,此宏将转换为以下模板: Macro converted to template 基本上,您可以自己尝试将宏转换为constexpr,但如果您没有看到“…”,就不要期望它总是工作。并不是所有的宏都是constexpr,因为有很多宏都表现出与常量和表达式无关的各种行为。

工具>选项配置

您可以在工具>选项文本编辑器> C/C++ >视图>宏转换为CONTXPR中配置宏> CONTXPR功能。在那里,您可以根据您的偏好选择是将其实例显示为建议(默认行为)、警告(绿色波形)、错误(生成中断的红色波形)还是无(以完全隐藏编辑器指示符)。 Tools > Options configuration

给我们你的反馈!

这是我们首次发布此功能。我们感谢您在下面的评论中对我们如何改进的任何反馈。如果您遇到任何错误,请通过帮助>发送反馈>在IDE中报告问题来通知我们。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享