热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ReSharperC++2021.2,以帮助您实现代码的现代化

ReSharperC2021.2,以帮助您实现代码的现代化ReSharperC添加了新的inlay提示,使隐藏的类型转换在编辑器中可见,以便您了解它们的

ReSharper C++ 2021.2,以帮助您实现代码的现代化

  ReSharper C++添加了新的 inlay 提示,使隐藏的类型转换在编辑器中可见,以便您了解它们的潜在性能和正确性影响。

  ReSharper C++第二个检查建议用 标记可以在编译时评估的变量constexpr,这可以带来更快的性能和更好的编译时检查。

  现代化检查- 此版本包括一些新的检查,以帮助您实现代码的现代化。

  可以使用结构化绑定代替tie(..)- 从 C++17 开始,您不再需要使用std::tie()或boost::tie()解包元组或对 - 结构化绑定声明可帮助您简化代码。

  ReSharper C++现在可以使用模板别名或变量模板来简化类型特征- C++14 别名模板让您可以缩短 C++11 类型特征表达式。

  std::size现在可以使用- 此检查建议将其std::size用作类型安全的替代方案,以替代容易出错的 C 习语来计算数组大小。

  可以使用零初始化代替memset- 零初始化导致更简洁的代码并防止各种memset相关错误。

  内联函数重构- 新的内联函数重构可让您快速用函数体替换函数调用。ReSharper C++ 将执行必要的转换、处理所有名称冲突并重新格式化生成的代码。

  ReSharper C++您现在将看到隐式转换的特殊图标。或者,您可以选择将转换显示为文本提示。

  ReSharper C++ 现在显示不同类型类类型转换的提示,包括对象复制、使用转换构造函数的对象初始化或聚合初始化和对转换运算符的调用。

  您现在还可以为内置类型之间的标准转换启用提示,例如,可能会丢失精度或更改类型符号的数字类型之间的转换。

  不变性检查

  与不变性相关的分析可以帮助您保持代码的可读性和正确性。通过添加两项新检查,ReSharper C++ 现在涵盖了 C++ 核心指南的常量和不变性部分中的所有规则。

  第一个新检查扩展了对引用和指针类型的函数参数的不变性分析。ReSharper C++ 现在会通知您是否可以将指针或引用传递给const,从而保证函数不会修改相应的函数参数。

  编码帮助

  默认情况下,ReSharper C++ 生成具有空主体的函数,但现在您可以指定生成的函数是应该抛出std::logic_error、返回默认值还是包含不可编译的代码。ReSharper C++ 还将自动从覆盖函数的主体调用基本函数。

  ReSharper C++添加了一个新的上下文操作,可让您将任何字符串转换为 C++11 原始字符串文字,当字符串文字包含特殊字符时更易于阅读。转换是双向的,因此您也可以将原始字符串文字转换为常规字符串文字。

  如果您想快速查阅 cppreference.com 以了解标准库类或函数的详细信息,现在可以单击快速文档弹出窗口 ( Ctrl+Shift+F1)中的以在浏览器中打开相应页面。

  当您按下Backspace空行或插入符号左侧带有空格或制表符的行时,ReSharper C++ 现在可以将插入符号置于适当的缩进位置,而不是一次将其移回一个位置。

  虚幻引擎- ReSharper C++ 现在支持使用来自虚幻启动器和 GitHub 源的虚幻引擎 5。

  在虚幻引擎项目的 .Build.cs 和 .Target.cs 文件中,ReSharper C++ 的代码完成功能现在会建议可用模块和插件的列表。

  添加模块或插件后,缺少依赖项的新检查将突出显示任何必须在 .uproject 或 .uplugin 文件中引用的内容。使用随附的快速修复程序,只需单击一下即可将新模块和插件添加到项目文件中。

  在生成覆盖函数的定义时,ReSharper C++ 现在将使用惯用的 Super 类型别名从生成的主体调用覆盖函数。

  ReSharper C++改进了冷启动的性能和内存使用。ReSharper C++ 现在索引虚幻引擎代码库的速度提高了 10%。

  其他变化

  捆绑的 Clang-Tidy 已更新到 Clang 12,添加了来自最新 LLVM 版本的新检查。它在复杂文件中的性能,特别是在 C++20 项目中的性能得到了改进。

  添加了一项新检查,当您将无符号表达式与 0 进行比较时会发出警告,这可能会导致无限循环或无法访问的代码。


推荐阅读
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 探讨如何修复Visual Studio Code中JavaScript的智能感知和自动完成功能在特定场景下无法正常工作的问题,包括配置检查、语言模式选择以及类型注释的使用。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 本文详细解释了为什么在成功执行移动赋值操作后,对象的析构函数会被调用,并提供了代码示例和详细的分析。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 在尝试从数据库获取设置的过程中,遇到了一个致命错误:Fatal error: Call to a member function bind_param() on boolean。本文将详细分析该错误的原因,并提供解决方案。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 本文详细探讨了 PHP 中常见的 '未定义索引' 错误,包括其原因、解决方案及最佳实践。通过实例和代码片段,帮助开发者更好地理解和处理这一常见问题。 ... [详细]
author-avatar
mobiledu2502905277
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有