ReSharper 2025.3 Help

C++ 中的代码模板

所有 ReSharper 的代码模板功能也支持 C++。 您可以在 代码模板 部分的相应主题中找到有关这些功能的详细信息。

实时模板

实时/环绕模板 可用于 在现有文件中生成代码 ,并且(如果模板正文中有 $SELECTION$ 参数 )可用于 用模板代码环绕代码片段 ,例如 try...catch 语句。

每个实时模板都由一个 快捷键 标识——一个简短的字符串,例如 foreach ,您可以直接在编辑器中键入它以调用模板。

ReSharper 提供了许多 预定义的动态模板。 您还可以在专用的 编辑器中或直接从 现有源代码创建 自定义动态模板

文件模板

文件模板 用于创建一个或多个具有预定义代码的新文件,例如类型声明、单元测试等。 文件模板没有快捷方式,它们通过描述来标识。 有关更多信息,请参阅 从模板创建文件创建多文件模板

应用模板时,文件模板可以创建多个文件。 当相关数据保存在不同文件中时,这可能会很有帮助。

类、结构体、源文件和头文件都有 预定义模板。 您还可以创建新的 文件多文件 模板。

ReSharper C++:文件模板

后缀模板

后缀模板帮助您转换已输入的表达式,而无需向后跳转——只需在表达式后输入一个点,然后从 完成列表中选择一个模板。

以下是 C++ 中可用的 后缀模板 列表。

快捷键

注释

示例

生成范围的迭代器

生成范围的迭代器

sort(range.begin(), range.end())

用 UE 类型转换包裹表达式

用 UE 类型转换包裹表达式

Cast<SomeType>(expr)

生成范围的迭代器

生成范围的迭代器

is_sorted(range.cbegin(), range.cend())

将表达式作为参数传递给 co_await

将表达式作为参数传递给 co_await

co_await expr

从当前协程返回表达式

从当前协程返回表达式

co_return expr;

将表达式作为参数传递给 co_yield

将表达式作为参数传递给 co_yield

co_yield expr

用 const_cast 包裹表达式

用 const_cast 包裹表达式

const_cast<SomeType &>(expr)

迭代直到布尔表达式变为 'false'

迭代直到布尔表达式为 'false'

do { } while (expr);

用 dynamic_cast 包裹表达式

用 dynamic_cast 包裹表达式

dynamic_cast<SomeType &>(expr)

检查布尔表达式是否为 'false'

检查布尔表达式是否为 'false'

if (!expr)

遍历

遍历范围

for (auto && x : range)

转发

转发函数参数

std::forward<Arg>(arg)

.if

检查布尔表达式是否为 'true'

if (expr)

构造对象并将其包装在 std::shared_ptr 中

构造对象并将其包装在 std::shared_ptr 中

std::make_shared<SomeType>()

构造对象并将其包装在 std::unique_ptr 中

构造对象并将其包装在 std::unique_ptr 中

std::make_unique<SomeType>()

.new

生成类型的实例化表达式

new SomeType()

用 reinterpret_cast 包裹表达式

用 reinterpret_cast 包裹表达式

reinterpret_cast<SomeType &>(expr)

返回

从当前函数返回表达式

return expr;

用 safe_cast 包裹表达式

用 safe_cast 包裹表达式(C++/CLI)

safe_cast<SomeType>(expr)

用 static_cast 包裹表达式

用 static_cast 包裹表达式

static_cast<SomeType>(expr)

生成 switch 语句

生成针对整数/枚举类型的 switch 语句

switch (expr)

为表达式引入变量

为表达式引入变量

auto x = expr;

.while

当布尔表达式为 'true' 时迭代

while (expr)

最后修改日期: 2025年 12月 8日