ReSharper 2026.2 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)

2026年 7月 16日