C++/CLI 支持
C++/CLI 是 Microsoft 提供的一组 C++ 语言扩展,旨在实现托管代码和本机代码之间的轻松互操作性。 它包括泛型、值类和引用类、句柄、跟踪引用、接口以及其他语法扩展。
除了主要的 代码分析、 导航和搜索、 编码辅助以及您在 C++ 中习惯使用的其他功能外,JetBrains Rider 还为 C++/CLI 特定的情况提供了额外支持。
搜索和导航
由于 C++/CLI 是语言之间的桥梁,JetBrains Rider 提供了跨语言导航功能以提高互操作性:
在从 C++/CLI 代码中查找派生符号时,JetBrains Rider 会在 C++/CLI 和 C# 代码中查找符号。
转到派生符号 还适用于 C++/CLI 属性中的 get/集合 函数以及 C++/CLI 事件中的 添加/移除 函数。

代码分析
JetBrains Rider 包含一组针对 C++/CLI 特定语言结构的检查:
如果接口成员缺少
虚拟指定符,或者没有公开可访问性,您将收到警告。
JetBrains Rider 会检查您分配内存的方式,并在目标类型无效时建议快速修复,将
gcnew替换为new。 它还适用于将new替换为gcnew。
JetBrains Rider 会在您尝试对托管类或接口使用 C++
final指定符时发出警告,并提供快速修复以将其更改为sealed。
此外,还有一些针对 C++/CLI 的有用快速修复。 例如,C++/CLI 中的 safe_cast 运算符在从基类向派生类进行向下转换时特别有用: safe_cast 会执行动态检查,并在转换失败时抛出 InvalidCastException。 您可以使用快速修复将 C 风格的强制类型转换转换为 safe_cast。

嵌入提示
除了 参数名称 和 类型名称提示 之外,JetBrains Rider 还为 C++/CLI 装箱转换提供了 类型转换提示 ,这会在托管堆上分配内存。 此类标准转换的提示默认是禁用的,但您可以在 JetBrains Rider 设置 的 页面上启用它们 Ctrl+Alt+S。

格式化样式
额外的格式化设置允许您配置 C++/CLI 泛型约束的样式:选择首选的缩进方式,在需要的地方添加空格,并强制换行()。
后缀补全
某些 C++ 后缀模板 专为在其上下文中生成 C++/CLI 代码而设计。
使用
.gcnew生成类型的实例化表达式。使用
.safe_cast将表达式包围在.safe_cast中。