VS新功能:智能添加函数标记

news2025/1/14 18:40:12

今天,我们官宣 Visual Studio 预览版的两项新功能:

1) 标记类成员函数为 const。
2) 标记全局函数为 static。

标记类成员函数为 const

如果一个类成员函数不会修改对象的状态,则 Visual Studio 会给出建议,将这个函数标记为 const。此功能标识成员函数执行的操作的情况,这些操作可以使用 const 指针通过对象的公共接口完成。
我们通过添加使成员函数变成 const 的建议,使编码过程更容易。

当成员函数可以成为常量时,函数下方会有一个建议(由三个点表示)。将鼠标悬停在它们上会通知你”成员函数可以成为 const”,然后就可以单击灯泡图标使成员函数自动修改为 const 版本。

>> 请移步至 topomel.com 以查看图片 <<

创建 const 版本的成员函数时,代码的自动修改将应用于具有成员函数的所有文件。你可以通过选择”预览所有更改的文件”链接来预览所有将会被修改的文件。

>> 请移步至 topomel.com 以查看图片 <<

默认情况下,”使成员函数常量”处于打开状态,并设置为建议。可以通过导航到”工具”>”选项”>”文本编辑器”> C/C++ > 代码样式> Linter 来查找和配置该设置。

>> 请移步至 topomel.com 以查看图片 <<

标记全局函数为 static

在 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》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1016665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python统计pdf中英文单词的个数

之前的文章提供了批量识别pdf中英文的方法,详见【python爬虫】批量识别pdf中的英文,自动翻译成中文上。以及自动pdf英文转中文文档,详见【python爬虫】批量识别pdf中的英文,自动翻译成中文下。    本文实现python统计pdf中英文字符的个数。 文章目录 一、要统计字符的pdf…

JDK14特性——GC的改进和优化

文章目录 G1的NUMA内存分配优化NUMA介绍目标 弃用SerialCMS,ParNewSerial Old理由 删除CMSCMS弊端其他垃圾收集器 ZGC on macOS and Windows G1的NUMA内存分配优化 NUMA介绍 NUMA就是非统一内存访问架构&#xff08;英语&#xff1a;non-uniform memory access&#xff0c;简…

【Flask】会话保持-API授权-注册登录

http - 无状态-无法记录是否已经登陆过 #会话保持 – session cookie session – 保存一些在服务端 cookie – 保存一些数据在客户端 session在单独服务器D上保存&#xff0c;前面数个服务器A,B,C上去取就好了&#xff0c;业务解耦。—》》现在都是基于token的验证。 以上是基…

SpringMVC自定义注解和使用

一.引言 1.简介&#xff1a; 在Spring MVC中&#xff0c;我们可以使用自定义注解来扩展和定制化我们的应用程序。自定义注解是一种通过Java的注解机制定义的特殊注解&#xff0c;可以应用于控制器类、方法或者方法参数上&#xff0c;以实现不同的功能和行为。&#xff08;注解…

[uni-app] iOS/Android端 禁止单个页面侧滑返回的处理记录

需要禁止部分页面侧滑返回 iOS端 popGesture 但是实测后, 其实设置popGesture:none 是无效的 真正可以用的是这个 disableSwipeBack android端 别的方案没有逐一尝试, 这边可以在需要禁止的页面的 onBackPress onBackPress() {// 禁止侧滑(但注意也会禁止导航返回,导航返…

如何在外网访问公司项目?快解析实现内网ip让公网连接

随着互联网技术的不断发展&#xff0c;越来越多的企业和个人选择使用服务器进行网站或应用程序的部署。公司内部项目需要提供外网访问是个常见的网络场景&#xff0c;需要怎么操作设置也是网络或项目人员需要关注的。 企业使用服务器搭建公司业务系统一般会使用云服务器或者使…

最新AI创作系统ChatGPT源码/支持国内AI模型/支持GPT4.0/支持AI绘画

一、AI创作系统 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统&#xff1f;小编这里写一个详细图文教程吧&am…

WebGPU学习(10)---如何利用 WebGPU 实现高性能

虽然是WebGPU&#xff0c;但是速度很慢&#xff01;&#xff1f; 我们将解释如何充分利用 WebGPU 性能。这次我们以绘制大量物体为例&#xff0c;根据“使用纹理”中的代码进行一些更改并绘制 900 个立方体。 要均匀分布立方体&#xff0c;可以按如下方式更新 worldMatrix&am…

微信小程序 解决 当套在scroll-view中后 wx.pageScrollTo 函数失效问题解决

pageScrollTo 只是 页面的API 他对 scroll-view 的滚动是无法控制的 但是 scroll-view 也提供了一个scroll-into-view属性 我们编写一个小案例 wxml 参考代码如下 <view><scroll-view scroll-y"{{ true }}" style"height: 100vh;" scroll-into-v…

笑笑云航服悦《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著

笑笑云航服悦《乡村振兴战略下传统村落文化旅游设计》许少辉博士新著

Android高级开发-APK极致优化

九道工序 1. SVG(Scalable Vector Graphics)可缩放矢量图 使用矢量图代替位图可以减小 APK 的尺寸&#xff0c;因为可以针对不同屏幕密度调整同一文件的大小&#xff0c;而不会降低图像质量。 矢量图首次加载时可能消耗更多的 CPU 资源。之后&#xff0c;二者的内存使用率和…

Spring 篇

1、什么是 Spring&#xff1f; Spring是一个轻量级的IOC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架&#xff0c;目的是用于简化企业应用程序的开发&#xff0c;它使得开发者只需要关心业务需求。常见的配置方式有三种&#xff1a;基于XML的配置、基于注解的配置…

06JVM_类加载器

一、类加载器 以JDK8为例&#xff1a; ①启动类加载器 ②扩展类加载器 ③应用程序类加载器 ④自定义类加载器 ①类加载器具有层级关系&#xff0c;当加载一个类的时候&#xff0c;要看所有的上级有没有加载此类。【双亲委派模式】 ②类加载器负责在运行时将Java类动态加载…

4.开放-封闭原则

这个原则其实是有两个特征&#xff0c;一个是说‘对于扩展是开放的(Open for extension)&#xff0c;另一个是说‘对于更改是封闭的(Closed for modification)[ASD]。

走近Callable

1.特点 可以有返回值可以抛出异常方法不同&#xff0c; run() / call(); Callable 接口类似于Runnable &#xff0c;因为它们都是为其实例可能有另一个线程执行的类设计的&#xff0c; 然而&#xff0c;Runnable不返回结果&#xff0c;也不能抛出被检查的异常。 2.代码测试…

互联网数字化管理升级,制造企业一站式智能管理,可定制-亿发

在互联网时代&#xff0c;传统机械制造企业面临着未有的挑战和机遇。信息化管理水平成为企业竞争力的关键因素。然而&#xff0c;许多制造企业在信息化管理中常常陷入以下三大问题&#xff1a; 1、盲目随潮流&#xff0c;缺乏总体规划 互联网时代&#xff0c;科技发展日新月异…

python基础复习-基本数据类型

目录 数字进制转换小数精度科学计算库 字符串转义符正向/反向索引正向/反向切片成员运算字符编码字符串处理 布尔类型指示条件作为掩码 类型转换 数字 进制转换 a10 bbin(a) coct(a) dhex(a) print(a,b,c,d) print(type(a)) print(type(b)) print(type(c)) print(type(d))10 …

Spring Cloud超越微服务:服务网格的崭露头角

文章目录 1. 微服务的挑战2. 什么是服务网格&#xff1f;3. Spring Cloud和服务网格服务发现负载均衡安全性服务网格扩展 4. 服务网格的优势4.1. 解耦通信逻辑4.2. 提高可观察性4.3. 灰度发布和流量控制4.4. 安全性 5. 未来展望6. 结论 &#x1f389;欢迎来到架构设计专栏~Spri…

【办公自动化】用Python在Excel中查找并替换数据(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

Python 潮流周刊#20:三种基准测试的方法、为什么代码在函数中运行得更快?

△点击上方“Python猫”关注 &#xff0c;回复“1”领取电子书 你好&#xff0c;我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容&#xff0c;大部分为英文。标题取自其中两则分享&#xff0c;不代表全部内容都是该主题&#xff0c;特此声明。 本周刊由 Python猫 出品…