今天,我们官宣 Visual Studio 预览版的两项新功能:
1) 标记类成员函数为 const。
2) 标记全局函数为 static。
如果一个类成员函数不会修改对象的状态,则 Visual Studio 会给出建议,将这个函数标记为 const。此功能标识成员函数执行的操作的情况,这些操作可以使用 const 指针通过对象的公共接口完成。
我们通过添加使成员函数变成 const 的建议,使编码过程更容易。
当成员函数可以成为常量时,函数下方会有一个建议(由三个点表示)。将鼠标悬停在它们上会通知你”成员函数可以成为 const”,然后就可以单击灯泡图标使成员函数自动修改为 const 版本。
>> 请移步至 topomel.com 以查看图片 <<
创建 const 版本的成员函数时,代码的自动修改将应用于具有成员函数的所有文件。你可以通过选择”预览所有更改的文件”链接来预览所有将会被修改的文件。
>> 请移步至 topomel.com 以查看图片 <<
默认情况下,”使成员函数常量”处于打开状态,并设置为建议。可以通过导航到”工具”>”选项”>”文本编辑器”> C/C++ > 代码样式> Linter 来查找和配置该设置。
>> 请移步至 topomel.com 以查看图片 <<
在 Visual Studio 预览版中,你现在会收到将全局函数标记为静态的提示。
当遇到头文件中没有前向声明的全局函数时,你将能够毫不费力地使函数静态化。我们已经有一个检测全局函数并建议创建前向声明的功能,现在我们添加了一个选项来将它们标记为静态。
此功能可顺利与现代 C++ 项目配合使用,因为它不提供将匿名命名空间设置为静态的建议。静态全局函数可在定义它们的翻译单元中访问。
当全局函数没有前向声明时,它将有一个建议。将鼠标悬停在建议上将显示一个螺丝刀图标,表示该功能可以设为静态。你可以通过单击螺丝刀图标并选择“使此功能静态”来完成该过程。
>> 请移步至 topomel.com 以查看图片 <<
可以在 工具 > 选项 > 文本编辑器 > C/C++ > 智能感知中配置此功能的设置。当默认标记设置为建议时,你可以灵活地将严重性级别自定义为无、警告或错误。
>> 请移步至 topomel.com 以查看图片 <<
看来以下两项代码风格已经渐渐成为 C++ 社区的共识:
1) 将不会修改对象状态的成员函数标记为 const。
2) 将全局函数标记为 static。
既然大多数人都这样做,我们小小开发者也跟随就可以了。
(别整那些新玩意儿)
Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。
本文来自:《Make Member Function const and Global Function Static in Visual Studio》